authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2021-07-10 14:35:20+02:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2021-07-15 18:49:47+02:00
log7aefea614f570f489366a7fbde1a98eaf2551fc6
treec68e1ee6152eb11401a2da915090f7eee44563ae
parent3bdb3b574e36962528d203a69ee1de4b39e17830

zld: fix allocating tentative defs


1 files changed, 11 insertions(+), 0 deletions(-)

src/link/MachO/Zld.zig+11
......@@ -1603,6 +1603,17 @@ fn resolveSymbols(self: *Zld) !void {
16031603 block.size = size;
16041604 block.alignment = alignment;
16051605
1606 // Update target section's metadata
1607 // TODO should we update segment's size here too?
1608 // How does it tie with incremental space allocs?
1609 const tseg = &self.load_commands.items[match.seg].Segment;
1610 const tsect = &tseg.sections.items[match.sect];
1611 const new_alignment = math.max(tsect.@"align", block.alignment);
1612 const new_alignment_pow_2 = try math.powi(u32, 2, new_alignment);
1613 const new_size = mem.alignForwardGeneric(u64, tsect.size + block.size, new_alignment_pow_2);
1614 tsect.size = new_size;
1615 tsect.@"align" = new_alignment;
1616
16061617 if (self.blocks.getPtr(match)) |last| {
16071618 last.*.next = block;
16081619 block.prev = last.*;