diff options
| author | Jakub Konka <kubkon@jakubkonka.com> | 2024-09-26 21:22:53 +0200 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2024-10-09 12:27:30 -0700 |
| commit | bae3dbffdf7a0b00f7e6c9100a8fedf62ced4701 (patch) | |
| tree | 2ef5b29016db668cc3986a77eb4e72a604c3a555 /src/link | |
| parent | bc7e0342b52a24a1052721396dfa88cd86e1304b (diff) | |
| download | zig-bae3dbffdf7a0b00f7e6c9100a8fedf62ced4701.tar.gz zig-bae3dbffdf7a0b00f7e6c9100a8fedf62ced4701.zip | |
elf: clear dynamic relocs before repopulating
Diffstat (limited to 'src/link')
| -rw-r--r-- | src/link/Elf.zig | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/link/Elf.zig b/src/link/Elf.zig index 1d9f7f0a47..a468f3b929 100644 --- a/src/link/Elf.zig +++ b/src/link/Elf.zig @@ -4269,6 +4269,8 @@ fn writeSyntheticSections(self: *Elf) !void { } if (self.rela_dyn_section_index) |shndx| { + // TODO: would state tracking be more appropriate here? perhaps even custom relocation type? + self.rela_dyn.clearRetainingCapacity(); const shdr = slice.items(.shdr)[shndx]; try self.got.addRela(self); try self.copy_rel.addRela(self); @@ -4301,6 +4303,8 @@ fn writeSyntheticSections(self: *Elf) !void { } if (self.rela_plt_section_index) |shndx| { + // TODO: would state tracking be more appropriate here? perhaps even custom relocation type? + self.rela_plt.clearRetainingCapacity(); const shdr = slice.items(.shdr)[shndx]; try self.plt.addRela(self); try self.base.file.?.pwriteAll(mem.sliceAsBytes(self.rela_plt.items), shdr.sh_offset); |
