authorgravatar for vprodan@proton.meVadym Prodan <vprodan@proton.me> 2026-01-10 01:23:54+01:00
committergravatar for vprodan@noreply.codeberg.orgVadym Prodan <vprodan@noreply.codeberg.org> 2026-01-12 11:31:04+01:00
log05b15e8bdb0f402fa2acea113ecbbe171f4d02bf
tree81853f0da12367d0e651fa0df1e5289b45f32c5f
parentfc517bd01c8c60290e903e58f1f567b065ae72a0

link/MachO: Add correct section flags (S_COALESCED, S_ATTR_NO_TOC,

S_ATTR_STRIP_STATIC_SYMS, S_ATTR_LIVE_SUPPORT) to __eh_frame section to match platform conventions

2 files changed, 6 insertions(+), 2 deletions(-)

src/link/MachO.zig+3-1
......@@ -1707,7 +1707,9 @@ fn initSyntheticSections(self: *MachO) !void {
17071707 } else false;
17081708 if (needs_eh_frame) {
17091709 assert(needs_unwind_info);
1710 self.eh_frame_sect_index = try self.addSection("__TEXT", "__eh_frame", .{});
1710 self.eh_frame_sect_index = try self.addSection("__TEXT", "__eh_frame", .{
1711 .flags = macho.S_COALESCED | macho.S_ATTR_NO_TOC | macho.S_ATTR_STRIP_STATIC_SYMS | macho.S_ATTR_LIVE_SUPPORT,
1712 });
17111713 }
17121714
17131715 if (self.getInternalObject()) |obj| {
src/link/MachO/relocatable.zig+3-1
......@@ -289,7 +289,9 @@ fn initOutputSections(macho_file: *MachO) !void {
289289 } else false;
290290 if (needs_eh_frame) {
291291 assert(needs_unwind_info);
292 macho_file.eh_frame_sect_index = try macho_file.addSection("__TEXT", "__eh_frame", .{});
292 macho_file.eh_frame_sect_index = try macho_file.addSection("__TEXT", "__eh_frame", .{
293 .flags = std.macho.S_COALESCED | std.macho.S_ATTR_NO_TOC | std.macho.S_ATTR_STRIP_STATIC_SYMS | std.macho.S_ATTR_LIVE_SUPPORT,
294 });
293295 }
294296}
295297