diff options
| author | Jakub Konka <kubkon@jakubkonka.com> | 2023-04-20 18:28:00 +0200 |
|---|---|---|
| committer | Jakub Konka <kubkon@jakubkonka.com> | 2023-04-21 22:44:28 +0200 |
| commit | a596e48d8fa2ca6ae267dbb49458fe107c89b953 (patch) | |
| tree | a397f503ca2547ed95226f824bdacfa5c5096f0e /src/link/Coff.zig | |
| parent | dd300d92e1c0812520ceffff4bc49529268efbff (diff) | |
| download | zig-a596e48d8fa2ca6ae267dbb49458fe107c89b953.tar.gz zig-a596e48d8fa2ca6ae267dbb49458fe107c89b953.zip | |
coff: mark relocs dirty by target when updating GOT
Diffstat (limited to 'src/link/Coff.zig')
| -rw-r--r-- | src/link/Coff.zig | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/link/Coff.zig b/src/link/Coff.zig index 50b98c2433..ac98457360 100644 --- a/src/link/Coff.zig +++ b/src/link/Coff.zig @@ -697,6 +697,7 @@ fn addGotEntry(self: *Coff, target: SymbolWithLoc) !void { const got_index = try self.got_table.allocateEntry(self.base.allocator, target); try self.writeOffsetTableEntry(got_index); self.got_table_count_dirty = true; + self.markRelocsDirtyByTarget(target); } pub fn createAtom(self: *Coff) !Atom.Index { @@ -1341,6 +1342,7 @@ fn updateDeclCode(self: *Coff, decl_index: Module.Decl.Index, code: []u8, comple log.debug(" (updating GOT entry)", .{}); const got_entry_index = self.got_table.lookup.get(.{ .sym_index = sym_index }).?; try self.writeOffsetTableEntry(got_entry_index); + self.markRelocsDirtyByTarget(.{ .sym_index = sym_index }); } } else if (code_len < atom.size) { self.shrinkAtom(atom_index, code_len); |
