authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2023-04-20 18:28:00+02:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2023-04-21 22:44:28+02:00
loga596e48d8fa2ca6ae267dbb49458fe107c89b953
treea397f503ca2547ed95226f824bdacfa5c5096f0e
parentdd300d92e1c0812520ceffff4bc49529268efbff

coff: mark relocs dirty by target when updating GOT


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

src/link/Coff.zig+2
......@@ -697,6 +697,7 @@ fn addGotEntry(self: *Coff, target: SymbolWithLoc) !void {
697697 const got_index = try self.got_table.allocateEntry(self.base.allocator, target);
698698 try self.writeOffsetTableEntry(got_index);
699699 self.got_table_count_dirty = true;
700 self.markRelocsDirtyByTarget(target);
700701}
701702
702703pub fn createAtom(self: *Coff) !Atom.Index {
......@@ -1341,6 +1342,7 @@ fn updateDeclCode(self: *Coff, decl_index: Module.Decl.Index, code: []u8, comple
13411342 log.debug(" (updating GOT entry)", .{});
13421343 const got_entry_index = self.got_table.lookup.get(.{ .sym_index = sym_index }).?;
13431344 try self.writeOffsetTableEntry(got_entry_index);
1345 self.markRelocsDirtyByTarget(.{ .sym_index = sym_index });
13441346 }
13451347 } else if (code_len < atom.size) {
13461348 self.shrinkAtom(atom_index, code_len);