aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLuuk de Gram <luuk@degram.dev>2023-04-12 18:02:09 +0200
committerAndrew Kelley <andrew@ziglang.org>2023-04-14 15:18:18 -0400
commit61c08d3c7e75a8d8df50bb836bb8fa2691d49cd8 (patch)
treef6e7ef9b996a19e89e589b24036675a9181e83e4 /src
parente0890734f0a4d9562d4561abc53d65b7d98f94c3 (diff)
downloadzig-61c08d3c7e75a8d8df50bb836bb8fa2691d49cd8.tar.gz
zig-61c08d3c7e75a8d8df50bb836bb8fa2691d49cd8.zip
fix zig cc linker flags for Wasm
Closes #15258
Diffstat (limited to 'src')
-rw-r--r--src/main.zig27
1 files changed, 17 insertions, 10 deletions
diff --git a/src/main.zig b/src/main.zig
index d996972e89..e68c0e84c4 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -1425,7 +1425,7 @@ fn buildOutputType(
linker_initial_memory = parseIntSuffix(arg, "--initial-memory=".len);
} else if (mem.startsWith(u8, arg, "--max-memory=")) {
linker_max_memory = parseIntSuffix(arg, "--max-memory=".len);
- } else if (mem.startsWith(u8, arg, "--shared-memory")) {
+ } else if (mem.eql(u8, arg, "--shared-memory")) {
linker_shared_memory = true;
} else if (mem.startsWith(u8, arg, "--global-base=")) {
linker_global_base = parseIntSuffix(arg, "--global-base=".len);
@@ -1959,16 +1959,23 @@ fn buildOutputType(
linker_import_table = true;
} else if (mem.eql(u8, arg, "--export-table")) {
linker_export_table = true;
- } else if (mem.startsWith(u8, arg, "--initial-memory=")) {
- linker_initial_memory = parseIntSuffix(arg, "--initial-memory=".len);
- } else if (mem.startsWith(u8, arg, "--max-memory=")) {
- linker_max_memory = parseIntSuffix(arg, "--max-memory=".len);
- } else if (mem.startsWith(u8, arg, "--shared-memory")) {
+ } else if (mem.eql(u8, arg, "--initial-memory")) {
+ const next_arg = linker_args_it.nextOrFatal();
+ linker_initial_memory = std.fmt.parseUnsigned(u32, eatIntPrefix(next_arg, 16), 16) catch |err| {
+ fatal("unable to parse initial memory size '{s}': {s}", .{ next_arg, @errorName(err) });
+ };
+ } else if (mem.eql(u8, arg, "--max-memory")) {
+ const next_arg = linker_args_it.nextOrFatal();
+ linker_max_memory = std.fmt.parseUnsigned(u32, eatIntPrefix(next_arg, 16), 16) catch |err| {
+ fatal("unable to parse max memory size '{s}': {s}", .{ next_arg, @errorName(err) });
+ };
+ } else if (mem.eql(u8, arg, "--shared-memory")) {
linker_shared_memory = true;
- } else if (mem.startsWith(u8, arg, "--global-base=")) {
- linker_global_base = parseIntSuffix(arg, "--global-base=".len);
- } else if (mem.startsWith(u8, arg, "--export=")) {
- try linker_export_symbol_names.append(arg["--export=".len..]);
+ } else if (mem.eql(u8, arg, "--global-base")) {
+ const next_arg = linker_args_it.nextOrFatal();
+ linker_global_base = std.fmt.parseUnsigned(u32, eatIntPrefix(next_arg, 16), 16) catch |err| {
+ fatal("unable to parse global base '{s}': {s}", .{ next_arg, @errorName(err) });
+ };
} else if (mem.eql(u8, arg, "--export")) {
try linker_export_symbol_names.append(linker_args_it.nextOrFatal());
} else if (mem.eql(u8, arg, "--compress-debug-sections")) {