authorgravatar for luuk@degram.devLuuk de Gram <luuk@degram.dev> 2023-04-12 18:02:09+02:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-04-14 15:18:18-04:00
log61c08d3c7e75a8d8df50bb836bb8fa2691d49cd8
treef6e7ef9b996a19e89e589b24036675a9181e83e4
parente0890734f0a4d9562d4561abc53d65b7d98f94c3

fix zig cc linker flags for Wasm

Closes #15258

1 files changed, 17 insertions(+), 10 deletions(-)

src/main.zig+17-10
...@@ -1425,7 +1425,7 @@ fn buildOutputType(...@@ -1425,7 +1425,7 @@ fn buildOutputType(
1425 linker_initial_memory = parseIntSuffix(arg, "--initial-memory=".len);1425 linker_initial_memory = parseIntSuffix(arg, "--initial-memory=".len);
1426 } else if (mem.startsWith(u8, arg, "--max-memory=")) {1426 } else if (mem.startsWith(u8, arg, "--max-memory=")) {
1427 linker_max_memory = parseIntSuffix(arg, "--max-memory=".len);1427 linker_max_memory = parseIntSuffix(arg, "--max-memory=".len);
1428 } else if (mem.startsWith(u8, arg, "--shared-memory")) {1428 } else if (mem.eql(u8, arg, "--shared-memory")) {
1429 linker_shared_memory = true;1429 linker_shared_memory = true;
1430 } else if (mem.startsWith(u8, arg, "--global-base=")) {1430 } else if (mem.startsWith(u8, arg, "--global-base=")) {
1431 linker_global_base = parseIntSuffix(arg, "--global-base=".len);1431 linker_global_base = parseIntSuffix(arg, "--global-base=".len);
...@@ -1959,16 +1959,23 @@ fn buildOutputType(...@@ -1959,16 +1959,23 @@ fn buildOutputType(
1959 linker_import_table = true;1959 linker_import_table = true;
1960 } else if (mem.eql(u8, arg, "--export-table")) {1960 } else if (mem.eql(u8, arg, "--export-table")) {
1961 linker_export_table = true;1961 linker_export_table = true;
1962 } else if (mem.startsWith(u8, arg, "--initial-memory=")) {1962 } else if (mem.eql(u8, arg, "--initial-memory")) {
1963 linker_initial_memory = parseIntSuffix(arg, "--initial-memory=".len);1963 const next_arg = linker_args_it.nextOrFatal();
1964 } else if (mem.startsWith(u8, arg, "--max-memory=")) {1964 linker_initial_memory = std.fmt.parseUnsigned(u32, eatIntPrefix(next_arg, 16), 16) catch |err| {
1965 linker_max_memory = parseIntSuffix(arg, "--max-memory=".len);1965 fatal("unable to parse initial memory size '{s}': {s}", .{ next_arg, @errorName(err) });
1966 } else if (mem.startsWith(u8, arg, "--shared-memory")) {1966 };
1967 } else if (mem.eql(u8, arg, "--max-memory")) {
1968 const next_arg = linker_args_it.nextOrFatal();
1969 linker_max_memory = std.fmt.parseUnsigned(u32, eatIntPrefix(next_arg, 16), 16) catch |err| {
1970 fatal("unable to parse max memory size '{s}': {s}", .{ next_arg, @errorName(err) });
1971 };
1972 } else if (mem.eql(u8, arg, "--shared-memory")) {
1967 linker_shared_memory = true;1973 linker_shared_memory = true;
1968 } else if (mem.startsWith(u8, arg, "--global-base=")) {1974 } else if (mem.eql(u8, arg, "--global-base")) {
1969 linker_global_base = parseIntSuffix(arg, "--global-base=".len);1975 const next_arg = linker_args_it.nextOrFatal();
1970 } else if (mem.startsWith(u8, arg, "--export=")) {1976 linker_global_base = std.fmt.parseUnsigned(u32, eatIntPrefix(next_arg, 16), 16) catch |err| {
1971 try linker_export_symbol_names.append(arg["--export=".len..]);1977 fatal("unable to parse global base '{s}': {s}", .{ next_arg, @errorName(err) });
1978 };
1972 } else if (mem.eql(u8, arg, "--export")) {1979 } else if (mem.eql(u8, arg, "--export")) {
1973 try linker_export_symbol_names.append(linker_args_it.nextOrFatal());1980 try linker_export_symbol_names.append(linker_args_it.nextOrFatal());
1974 } else if (mem.eql(u8, arg, "--compress-debug-sections")) {1981 } else if (mem.eql(u8, arg, "--compress-debug-sections")) {