commit 82cf762b0205f036677d234abb35bf1deafb5c7e (tree)
parent db3db1150e48cf506593489dff93adda9e1111fe
Author: Jakub Konka <kubkon@jakubkonka.com>
Date: Tue, 24 Sep 2024 11:09:17 +0200
elf: reset (merge) sections sizes before updating
Diffstat:
2 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/src/link/Elf/AtomList.zig b/src/link/Elf/AtomList.zig
@@ -19,6 +19,9 @@ pub fn offset(list: AtomList, elf_file: *Elf) u64 {
}
pub fn updateSize(list: *AtomList, elf_file: *Elf) void {
+ // TODO perhaps a 'stale' flag would be better here?
+ list.size = 0;
+ list.alignment = .@"1";
for (list.atoms.items) |ref| {
const atom_ptr = elf_file.atom(ref).?;
assert(atom_ptr.alive);
diff --git a/src/link/Elf/merge_section.zig b/src/link/Elf/merge_section.zig
@@ -95,6 +95,10 @@ pub const MergeSection = struct {
}
pub fn updateSize(msec: *MergeSection) void {
+ // TODO a 'stale' flag would be better here perhaps?
+ msec.size = 0;
+ msec.alignment = .@"1";
+ msec.entsize = 0;
for (msec.finalized_subsections.items) |msub_index| {
const msub = msec.mergeSubsection(msub_index);
assert(msub.alive);