zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

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:
Msrc/link/Elf/AtomList.zig | 3+++
Msrc/link/Elf/merge_section.zig | 4++++
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);