| author | |
| committer | |
| log | 6eabdc8972ebe47d9cc71d6d07034096905cd2d5 |
| tree | deb4418f00a660a76d934b63a9a9ddf523dcd1ee |
| parent | d5ac3be6089b24492c209340bc508a5081cc2483 |
3 files changed, 27 insertions(+), 20 deletions(-)
src/link/Coff.zig+7| ... | ... | @@ -1763,6 +1763,7 @@ fn linkWithLLD(coff: *Coff, arena: Allocator, tid: Zcu.PerThread.Id, prog_node: |
| 1763 | 1763 | man.hash.addOptionalBytes(entry_name); |
| 1764 | 1764 | man.hash.add(coff.base.stack_size); |
| 1765 | 1765 | man.hash.add(coff.image_base); |
| 1766 | man.hash.add(coff.base.build_id); | |
| 1766 | 1767 | { |
| 1767 | 1768 | // TODO remove this, libraries must instead be resolved by the frontend. |
| 1768 | 1769 | for (coff.lib_directories) |lib_directory| man.hash.addOptionalBytes(lib_directory.path); |
| ... | ... | @@ -1895,6 +1896,12 @@ fn linkWithLLD(coff: *Coff, arena: Allocator, tid: Zcu.PerThread.Id, prog_node: |
| 1895 | 1896 | } |
| 1896 | 1897 | try argv.append(try allocPrint(arena, "-BASE:{d}", .{coff.image_base})); |
| 1897 | 1898 | |
| 1899 | switch (coff.base.build_id) { | |
| 1900 | .none => try argv.append("-BUILD-ID:NO"), | |
| 1901 | .fast => try argv.append("-BUILD-ID"), | |
| 1902 | .uuid, .sha1, .md5, .hexstring => {}, | |
| 1903 | } | |
| 1904 | ||
| 1898 | 1905 | if (target.cpu.arch == .x86) { |
| 1899 | 1906 | try argv.append("-MACHINE:X86"); |
| 1900 | 1907 | } else if (target.cpu.arch == .x86_64) { |
src/link/Elf.zig+9-15| ... | ... | @@ -1596,8 +1596,8 @@ fn linkWithLLD(self: *Elf, arena: Allocator, tid: Zcu.PerThread.Id, prog_node: s |
| 1596 | 1596 | man.hash.addListOfBytes(self.rpath_table.keys()); |
| 1597 | 1597 | if (output_mode == .Exe) { |
| 1598 | 1598 | man.hash.add(self.base.stack_size); |
| 1599 | man.hash.add(self.base.build_id); | |
| 1600 | 1599 | } |
| 1600 | man.hash.add(self.base.build_id); | |
| 1601 | 1601 | man.hash.addListOfBytes(self.symbol_wrap_set.keys()); |
| 1602 | 1602 | man.hash.add(comp.skip_linker_dependencies); |
| 1603 | 1603 | man.hash.add(self.z_nodelete); |
| ... | ... | @@ -1753,20 +1753,14 @@ fn linkWithLLD(self: *Elf, arena: Allocator, tid: Zcu.PerThread.Id, prog_node: s |
| 1753 | 1753 | }); |
| 1754 | 1754 | } |
| 1755 | 1755 | |
| 1756 | if (is_exe_or_dyn_lib) { | |
| 1757 | switch (self.base.build_id) { | |
| 1758 | .none => {}, | |
| 1759 | .fast, .uuid, .sha1, .md5 => { | |
| 1760 | try argv.append(try std.fmt.allocPrint(arena, "--build-id={s}", .{ | |
| 1761 | @tagName(self.base.build_id), | |
| 1762 | })); | |
| 1763 | }, | |
| 1764 | .hexstring => |hs| { | |
| 1765 | try argv.append(try std.fmt.allocPrint(arena, "--build-id=0x{s}", .{ | |
| 1766 | std.fmt.fmtSliceHexLower(hs.toSlice()), | |
| 1767 | })); | |
| 1768 | }, | |
| 1769 | } | |
| 1756 | switch (self.base.build_id) { | |
| 1757 | .none => try argv.append("--build-id=none"), | |
| 1758 | .fast, .uuid, .sha1, .md5 => try argv.append(try std.fmt.allocPrint(arena, "--build-id={s}", .{ | |
| 1759 | @tagName(self.base.build_id), | |
| 1760 | })), | |
| 1761 | .hexstring => |hs| try argv.append(try std.fmt.allocPrint(arena, "--build-id=0x{s}", .{ | |
| 1762 | std.fmt.fmtSliceHexLower(hs.toSlice()), | |
| 1763 | })), | |
| 1770 | 1764 | } |
| 1771 | 1765 | |
| 1772 | 1766 | try argv.append(try std.fmt.allocPrint(arena, "--image-base={d}", .{self.image_base})); |
src/link/Wasm.zig+11-5| ... | ... | @@ -4078,6 +4078,17 @@ fn linkWithLLD(wasm: *Wasm, arena: Allocator, tid: Zcu.PerThread.Id, prog_node: |
| 4078 | 4078 | try std.fmt.allocPrint(arena, "stack-size={d}", .{wasm.base.stack_size}), |
| 4079 | 4079 | }); |
| 4080 | 4080 | |
| 4081 | switch (wasm.base.build_id) { | |
| 4082 | .none => try argv.append("--build-id=none"), | |
| 4083 | .fast, .uuid, .sha1 => try argv.append(try std.fmt.allocPrint(arena, "--build-id={s}", .{ | |
| 4084 | @tagName(wasm.base.build_id), | |
| 4085 | })), | |
| 4086 | .hexstring => |hs| try argv.append(try std.fmt.allocPrint(arena, "--build-id=0x{s}", .{ | |
| 4087 | std.fmt.fmtSliceHexLower(hs.toSlice()), | |
| 4088 | })), | |
| 4089 | .md5 => {}, | |
| 4090 | } | |
| 4091 | ||
| 4081 | 4092 | if (wasm.import_symbols) { |
| 4082 | 4093 | try argv.append("--allow-undefined"); |
| 4083 | 4094 | } |
| ... | ... | @@ -4089,11 +4100,6 @@ fn linkWithLLD(wasm: *Wasm, arena: Allocator, tid: Zcu.PerThread.Id, prog_node: |
| 4089 | 4100 | try argv.append("--pie"); |
| 4090 | 4101 | } |
| 4091 | 4102 | |
| 4092 | // XXX - TODO: add when wasm-ld supports --build-id. | |
| 4093 | // if (wasm.base.build_id) { | |
| 4094 | // try argv.append("--build-id=tree"); | |
| 4095 | // } | |
| 4096 | ||
| 4097 | 4103 | try argv.appendSlice(&.{ "-o", full_out_path }); |
| 4098 | 4104 | |
| 4099 | 4105 | if (target.cpu.arch == .wasm64) { |