diff options
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")) { |
