diff options
| author | Luuk de Gram <luuk@degram.dev> | 2023-04-12 18:02:09 +0200 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2023-04-14 15:18:18 -0400 |
| commit | 61c08d3c7e75a8d8df50bb836bb8fa2691d49cd8 (patch) | |
| tree | f6e7ef9b996a19e89e589b24036675a9181e83e4 /src/main.zig | |
| parent | e0890734f0a4d9562d4561abc53d65b7d98f94c3 (diff) | |
| download | zig-61c08d3c7e75a8d8df50bb836bb8fa2691d49cd8.tar.gz zig-61c08d3c7e75a8d8df50bb836bb8fa2691d49cd8.zip | |
fix zig cc linker flags for Wasm
Closes #15258
Diffstat (limited to 'src/main.zig')
| -rw-r--r-- | src/main.zig | 27 |
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")) { |
