authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-01-25 11:52:13-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-01-25 11:52:48-07:00
log366c76744429cb9c2fcd60abad191b7ef40ed5db
tree26c20a672d223c3063e59156d3348a59a6ecdcb8
parent50905d88518f92a9b8e492daf8dbb6d38b7c61bf

link: Elf, Wasm: forward strip flag when linking with LLD


3 files changed, 11 insertions(+), 0 deletions(-)

src/link/Coff.zig+1
......@@ -972,6 +972,7 @@ fn linkWithLLD(self: *Coff, comp: *Compilation) !void {
972972 man.hash.add(self.base.options.tsaware);
973973 man.hash.add(self.base.options.nxcompat);
974974 man.hash.add(self.base.options.dynamicbase);
975 // strip does not need to go into the linker hash because it is part of the hash namespace
975976 man.hash.addOptional(self.base.options.major_subsystem_version);
976977 man.hash.addOptional(self.base.options.minor_subsystem_version);
977978
src/link/Elf.zig+5
......@@ -1414,6 +1414,7 @@ fn linkWithLLD(self: *Elf, comp: *Compilation) !void {
14141414 man.hash.add(self.base.options.z_noexecstack);
14151415 man.hash.add(self.base.options.z_now);
14161416 man.hash.add(self.base.options.z_relro);
1417 // strip does not need to go into the linker hash because it is part of the hash namespace
14171418 if (self.base.options.link_libc) {
14181419 man.hash.add(self.base.options.libc_installation != null);
14191420 if (self.base.options.libc_installation) |libc_installation| {
......@@ -1554,6 +1555,10 @@ fn linkWithLLD(self: *Elf, comp: *Compilation) !void {
15541555 try argv.append("--export-dynamic");
15551556 }
15561557
1558 if (self.base.options.strip) {
1559 try argv.append("-s");
1560 }
1561
15571562 if (self.base.options.z_nodelete) {
15581563 try argv.append("-z");
15591564 try argv.append("nodelete");
src/link/Wasm.zig+5
......@@ -1223,6 +1223,7 @@ fn linkWithLLD(self: *Wasm, comp: *Compilation) !void {
12231223 man.hash.addOptional(self.base.options.max_memory);
12241224 man.hash.addOptional(self.base.options.global_base);
12251225 man.hash.add(self.base.options.export_symbol_names.len);
1226 // strip does not need to go into the linker hash because it is part of the hash namespace
12261227 for (self.base.options.export_symbol_names) |symbol_name| {
12271228 man.hash.addBytes(symbol_name);
12281229 }
......@@ -1311,6 +1312,10 @@ fn linkWithLLD(self: *Wasm, comp: *Compilation) !void {
13111312 try argv.append("--export-table");
13121313 }
13131314
1315 if (self.base.options.strip) {
1316 try argv.append("-s");
1317 }
1318
13141319 if (self.base.options.initial_memory) |initial_memory| {
13151320 const arg = try std.fmt.allocPrint(arena, "--initial-memory={d}", .{initial_memory});
13161321 try argv.append(arg);