authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-07-28 15:56:45+02:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2024-07-28 22:49:41+02:00
logc15755092821c5c27727ebf416689084eab5b73e
treeafc1104bb5d008af0b39309e19ff46f2ef30058d
parentd30d37e356a7e5339c353b2aec94aa9eee59d8c6

link.Coff: Basic support for `/Brepro` in the self-hosted linker.

Just keep things simple and zero the timestamp. It's not obvious that there's any real benefit to adding complexity and harming performance by computing a hash of the whole file for the timestamp value. See: * https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#general-concepts * https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#debug-type In the future, we should at least add an empty `IMAGE_DEBUG_TYPE_REPRO` entry to the debug data directory for this case, but I didn't want to do too much surgery right now since it's early days for COFF support in the self-hosted linker.

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

src/link/Coff.zig+1-1
......@@ -2289,7 +2289,7 @@ fn writeHeader(self: *Coff) !void {
22892289 flags.DLL = 1;
22902290 }
22912291
2292 const timestamp = std.time.timestamp();
2292 const timestamp = if (self.repro) 0 else std.time.timestamp();
22932293 const size_of_optional_header = @as(u16, @intCast(self.getOptionalHeaderSize() + self.getDataDirectoryHeadersSize()));
22942294 var coff_header = coff.CoffHeader{
22952295 .machine = coff.MachineType.fromTargetCpuArch(target.cpu.arch),