From 56fdada577d5d7f871bed8e5ae74e395291d4140 Mon Sep 17 00:00:00 2001 From: Jakub Konka Date: Thu, 9 Sep 2021 16:55:56 +0200 Subject: [PATCH] macho: properly adjust section sizes --- src/link/MachO.zig | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/link/MachO.zig b/src/link/MachO.zig index 4a8df9ae6c..2ccedd70ea 100644 --- a/src/link/MachO.zig +++ b/src/link/MachO.zig @@ -2667,8 +2667,16 @@ fn parseTextBlocks(self: *MachO) !void { metadata.size, metadata.alignment, }); + + const sect_size = if (self.blocks.get(match)) |last| blk: { + const last_atom_sym = self.locals.items[last.local_sym_index]; + break :blk last_atom_sym.n_value + last.size - sect.addr; + } else 0; + sect.@"align" = math.max(sect.@"align", metadata.alignment); - try self.growSection(match, @intCast(u32, metadata.size)); + const needed_size = @intCast(u32, metadata.size + sect_size); + try self.growSection(match, needed_size); + sect.size = needed_size; var base_vaddr = if (self.blocks.get(match)) |last| blk: { const last_atom_sym = self.locals.items[last.local_sym_index];