diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-12-28 00:20:45 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-12-28 00:20:45 +0000 |
| commit | 08d8d6c651baf72c86714b46df3794ee8227d98a (patch) | |
| tree | f99a96a040450c67d84c1ce748e1c23da3c9fc14 /src/main/java | |
| parent | c0cbe0057519db843a1a4ce2beb97e0ff54ece17 (diff) | |
Add clang flags to support linking on i686
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/shedlang/compiler/backends/llvm/LlvmBackend.java | 2 | ||||
| -rw-r--r-- | src/main/java/org/shedlang/compiler/backends/llvm/LlvmTarget.java | 14 |
2 files changed, 13 insertions, 3 deletions
diff --git a/src/main/java/org/shedlang/compiler/backends/llvm/LlvmBackend.java b/src/main/java/org/shedlang/compiler/backends/llvm/LlvmBackend.java index c15d431c..4a74b6d9 100644 --- a/src/main/java/org/shedlang/compiler/backends/llvm/LlvmBackend.java +++ b/src/main/java/org/shedlang/compiler/backends/llvm/LlvmBackend.java @@ -113,6 +113,8 @@ public class LlvmBackend implements Backend { .toString() ); + clangArgs.addAll(this.target.clangFlags()); + runInheritIo(clangArgs); } diff --git a/src/main/java/org/shedlang/compiler/backends/llvm/LlvmTarget.java b/src/main/java/org/shedlang/compiler/backends/llvm/LlvmTarget.java index cf2d09ad..ea462382 100644 --- a/src/main/java/org/shedlang/compiler/backends/llvm/LlvmTarget.java +++ b/src/main/java/org/shedlang/compiler/backends/llvm/LlvmTarget.java @@ -1,15 +1,19 @@ package org.shedlang.compiler.backends.llvm; +import java.util.List; + public enum LlvmTarget { - AMD64("amd64", "x86_64-unknown-linux-gnu"), - I686("i686", "i686-unknown-linux-gnu"); + AMD64("amd64", "x86_64-unknown-linux-gnu", List.of()), + I686("i686", "i686-unknown-linux-gnu", List.of("-m32")); private final String targetName; private final String targetTriple; + private final List<String> clangFlags; - LlvmTarget(String targetName, String targetTriple) { + LlvmTarget(String targetName, String targetTriple, List<String> clangFlags) { this.targetName = targetName; this.targetTriple = targetTriple; + this.clangFlags = clangFlags; } public String targetName() { @@ -19,4 +23,8 @@ public enum LlvmTarget { public String targetTriple() { return this.targetTriple; } + + public List<String> clangFlags() { + return this.clangFlags; + } } |
