zig

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

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:
Msrc-self-hosted/link/MachO.zig | 5++---
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 {