aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/link/Elf.zig4
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);