aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-12-26 20:52:06 +0000
committerMichael Williamson <mike@zwobble.org>2023-12-26 20:52:06 +0000
commitf0ee4f2251f02bdba1243a39f5c1ea639b86c4df (patch)
tree47ff79030a1105a5c4845b7f6c5755952fff57ba /src/main/java
parentb575763e87d750d4330e6e2b1bedc7f28e8342de (diff)
Set correct linker flags for wasm64
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/backends/wasm/WasmBackend.java2
-rw-r--r--src/main/java/org/shedlang/compiler/backends/wasm/WasmTarget.java14
2 files changed, 13 insertions, 3 deletions
diff --git a/src/main/java/org/shedlang/compiler/backends/wasm/WasmBackend.java b/src/main/java/org/shedlang/compiler/backends/wasm/WasmBackend.java
index ba309994..cf30d1c7 100644
--- a/src/main/java/org/shedlang/compiler/backends/wasm/WasmBackend.java
+++ b/src/main/java/org/shedlang/compiler/backends/wasm/WasmBackend.java
@@ -82,6 +82,8 @@ public class WasmBackend implements Backend {
var ldArgs = new ArrayList<String>();
ldArgs.add("wasm-ld-16");
+ ldArgs.addAll(this.target.linkerFlags());
+
ldArgs.add("-o");
ldArgs.add(target.toString());
diff --git a/src/main/java/org/shedlang/compiler/backends/wasm/WasmTarget.java b/src/main/java/org/shedlang/compiler/backends/wasm/WasmTarget.java
index 7157e946..ac094c92 100644
--- a/src/main/java/org/shedlang/compiler/backends/wasm/WasmTarget.java
+++ b/src/main/java/org/shedlang/compiler/backends/wasm/WasmTarget.java
@@ -1,16 +1,24 @@
package org.shedlang.compiler.backends.wasm;
+import java.util.List;
+
public enum WasmTarget {
- WASM32("wasm32"),
- WASM64("wasm64");
+ WASM32("wasm32", List.of()),
+ WASM64("wasm64", List.of("-mwasm64"));
private final String targetName;
+ private final List<String> linkerFlags;
- WasmTarget(String name) {
+ WasmTarget(String name, List<String> linkerFlags) {
this.targetName = name;
+ this.linkerFlags = linkerFlags;
}
public String targetName() {
return targetName;
}
+
+ public List<String> linkerFlags() {
+ return linkerFlags;
+ }
}