commit edbfd04ec1fa11fde88166c4b906b7868cbbf218 (tree)
parent 9306dbd6194251e816f11bc8f420fac0d1ca8835
Author: Jakub Konka <kubkon@jakubkonka.com>
Date: Tue, 8 Sep 2020 22:00:31 +0200
Do not pad out text blocks
It seems MachO does not like padding between text block in __text
section. Unlike in Elf, there is no size information in symbol
struct `nlist_64`.
Signed-off-by: Jakub Konka <kubkon@jakubkonka.com>
Diffstat:
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/src-self-hosted/link/MachO.zig b/src-self-hosted/link/MachO.zig
@@ -500,9 +500,8 @@ fn allocateTextBlock(self: *MachO, text_block: *TextBlock, new_block_size: u64,
const addr = blk: {
if (self.last_text_block) |last| {
const last_symbol = self.symbol_table.items[last.symbol_table_index.?];
- const ideal_capacity = last.size * alloc_num / alloc_den;
- const ideal_capacity_end_addr = last_symbol.n_value + ideal_capacity;
- const new_start_addr = mem.alignForwardGeneric(u64, ideal_capacity_end_addr, alignment);
+ const end_addr = last_symbol.n_value + last.size;
+ const new_start_addr = mem.alignForwardGeneric(u64, end_addr, alignment);
block_placement = last;
break :blk new_start_addr;
} else {