| author | |
| committer | |
| log | c0378e85b62486ed95c3051c732501f6a8fbebb8 |
| tree | 6b7c81fd89cfca567a88808a8270b4b4bd06939f |
| parent | ebb37e719d1c99a1bb14ee84bbabdeab0c61ba63 |
| signature |
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| ... | ... | @@ -4067,6 +4067,17 @@ fn linkWithLLD(wasm: *Wasm, arena: Allocator, tid: Zcu.PerThread.Id, prog_node: |
| 4067 | 4067 | try std.fmt.allocPrint(arena, "stack-size={d}", .{wasm.base.stack_size}), |
| 4068 | 4068 | }); |
| 4069 | 4069 | |
| 4070 | switch (wasm.base.build_id) { | |
| 4071 | .none => try argv.append("--build-id=none"), | |
| 4072 | .fast, .uuid, .sha1 => try argv.append(try std.fmt.allocPrint(arena, "--build-id={s}", .{ | |
| 4073 | @tagName(wasm.base.build_id), | |
| 4074 | })), | |
| 4075 | .hexstring => |hs| try argv.append(try std.fmt.allocPrint(arena, "--build-id=0x{s}", .{ | |
| 4076 | std.fmt.fmtSliceHexLower(hs.toSlice()), | |
| 4077 | })), | |
| 4078 | .md5 => {}, | |
| 4079 | } | |
| 4080 | ||
| 4070 | 4081 | if (wasm.import_symbols) { |
| 4071 | 4082 | try argv.append("--allow-undefined"); |
| 4072 | 4083 | } |
| ... | ... | @@ -4078,11 +4089,6 @@ fn linkWithLLD(wasm: *Wasm, arena: Allocator, tid: Zcu.PerThread.Id, prog_node: |
| 4078 | 4089 | try argv.append("--pie"); |
| 4079 | 4090 | } |
| 4080 | 4091 | |
| 4081 | // XXX - TODO: add when wasm-ld supports --build-id. | |
| 4082 | // if (wasm.base.build_id) { | |
| 4083 | // try argv.append("--build-id=tree"); | |
| 4084 | // } | |
| 4085 | ||
| 4086 | 4092 | try argv.appendSlice(&.{ "-o", full_out_path }); |
| 4087 | 4093 | |
| 4088 | 4094 | if (target.cpu.arch == .wasm64) { |