authorgravatar for kcbanner@gmail.comCasey Banner <kcbanner@gmail.com> 2026-06-05 01:55:36-04:00
committergravatar for kcbanner@gmail.comCasey Banner <kcbanner@gmail.com> 2026-06-23 00:26:56-04:00
loge91a1060512be07e4da889f4baadd1588f77ad94
tree758ab8309d9bb0e238a3a5ff2f9d747cfb2ceb1d
parentbed106e5bf298adf8ce3f2c937f8fcaab14e21db

Coff: fixup not applying thunk target relocs


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

src/link/Coff.zig+2-5
......@@ -6223,13 +6223,12 @@ fn flushGlobal(coff: *Coff, gmi: Node.GlobalMapIndex) !bool {
62236223 return true;
62246224 };
62256225
6226 const lib_name = import.lib_name.toSlice(coff);
6227
62286226 try coff.nodes.ensureUnusedCapacity(gpa, 4);
62296227 try coff.symbols.ensureUnusedCapacity(gpa, 2);
62306228
62316229 const target_endian = coff.targetEndian();
62326230 const addr_info = coff.targetAddrInfo();
6231 const lib_name = import.lib_name.toSlice(coff);
62336232 const gop = try coff.import_table.entries.getOrPutAdapted(
62346233 gpa,
62356234 lib_name,
......@@ -6380,7 +6379,6 @@ fn flushGlobal(coff: *Coff, gmi: Node.GlobalMapIndex) !bool {
63806379 sym.section_number = iat_sym.section_number;
63816380 sym.ni = iat_sym.ni;
63826381 sym.setValue(.{ .node_offset = iat_offset });
6383 si.flushMoved(coff);
63846382 (try gop.value_ptr.import_address_table_symbols.addOne(gpa)).* = si;
63856383 },
63866384 .thunk => {
......@@ -6424,11 +6422,10 @@ fn flushGlobal(coff: *Coff, gmi: Node.GlobalMapIndex) !bool {
64246422 },
64256423 }
64266424 coff.nodes.appendAssumeCapacity(.{ .import_thunk = gmi });
6427 sym.rva = coff.computeNodeRva(sym.ni);
6428 si.applyLocationRelocs(coff);
64296425 },
64306426 }
64316427
6428 si.flushMoved(coff);
64326429 return true;
64336430}
64346431