| 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,6 +1763,7 @@ fn linkWithLLD(coff: *Coff, arena: Allocator, tid: Zcu.PerThread.Id, prog_node: |
| 1763 | man.hash.addOptionalBytes(entry_name); | 1763 | man.hash.addOptionalBytes(entry_name); |
| 1764 | man.hash.add(coff.base.stack_size); | 1764 | man.hash.add(coff.base.stack_size); |
| 1765 | man.hash.add(coff.image_base); | 1765 | man.hash.add(coff.image_base); |
| 1766 | man.hash.add(coff.base.build_id); | ||
| 1766 | { | 1767 | { |
| 1767 | // TODO remove this, libraries must instead be resolved by the frontend. | 1768 | // TODO remove this, libraries must instead be resolved by the frontend. |
| 1768 | for (coff.lib_directories) |lib_directory| man.hash.addOptionalBytes(lib_directory.path); | 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,6 +1896,12 @@ fn linkWithLLD(coff: *Coff, arena: Allocator, tid: Zcu.PerThread.Id, prog_node: |
| 1895 | } | 1896 | } |
| 1896 | try argv.append(try allocPrint(arena, "-BASE:{d}", .{coff.image_base})); | 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 | if (target.cpu.arch == .x86) { | 1905 | if (target.cpu.arch == .x86) { |
| 1899 | try argv.append("-MACHINE:X86"); | 1906 | try argv.append("-MACHINE:X86"); |
| 1900 | } else if (target.cpu.arch == .x86_64) { | 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,8 +1596,8 @@ fn linkWithLLD(self: *Elf, arena: Allocator, tid: Zcu.PerThread.Id, prog_node: s |
| 1596 | man.hash.addListOfBytes(self.rpath_table.keys()); | 1596 | man.hash.addListOfBytes(self.rpath_table.keys()); |
| 1597 | if (output_mode == .Exe) { | 1597 | if (output_mode == .Exe) { |
| 1598 | man.hash.add(self.base.stack_size); | 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 | man.hash.addListOfBytes(self.symbol_wrap_set.keys()); | 1601 | man.hash.addListOfBytes(self.symbol_wrap_set.keys()); |
| 1602 | man.hash.add(comp.skip_linker_dependencies); | 1602 | man.hash.add(comp.skip_linker_dependencies); |
| 1603 | man.hash.add(self.z_nodelete); | 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,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) { | 1756 | switch (self.base.build_id) { |
| 1757 | switch (self.base.build_id) { | 1757 | .none => try argv.append("--build-id=none"), |
| 1758 | .none => {}, | 1758 | .fast, .uuid, .sha1, .md5 => try argv.append(try std.fmt.allocPrint(arena, "--build-id={s}", .{ |
| 1759 | .fast, .uuid, .sha1, .md5 => { | 1759 | @tagName(self.base.build_id), |
| 1760 | try argv.append(try std.fmt.allocPrint(arena, "--build-id={s}", .{ | 1760 | })), |
| 1761 | @tagName(self.base.build_id), | 1761 | .hexstring => |hs| try argv.append(try std.fmt.allocPrint(arena, "--build-id=0x{s}", .{ |
| 1762 | })); | 1762 | std.fmt.fmtSliceHexLower(hs.toSlice()), |
| 1763 | }, | 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 | } | ||
| 1770 | } | 1764 | } |
| 1771 | 1765 | ||
| 1772 | try argv.append(try std.fmt.allocPrint(arena, "--image-base={d}", .{self.image_base})); | 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,6 +4067,17 @@ fn linkWithLLD(wasm: *Wasm, arena: Allocator, tid: Zcu.PerThread.Id, prog_node: |
| 4067 | try std.fmt.allocPrint(arena, "stack-size={d}", .{wasm.base.stack_size}), | 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 | if (wasm.import_symbols) { | 4081 | if (wasm.import_symbols) { |
| 4071 | try argv.append("--allow-undefined"); | 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,11 +4089,6 @@ fn linkWithLLD(wasm: *Wasm, arena: Allocator, tid: Zcu.PerThread.Id, prog_node: |
| 4078 | try argv.append("--pie"); | 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 | try argv.appendSlice(&.{ "-o", full_out_path }); | 4092 | try argv.appendSlice(&.{ "-o", full_out_path }); |
| 4087 | 4093 | ||
| 4088 | if (target.cpu.arch == .wasm64) { | 4094 | if (target.cpu.arch == .wasm64) { |