From 399aa62c7fa52903b88caacf3c6571a4a341f211 Mon Sep 17 00:00:00 2001 From: Teddy Randby Date: Tue, 7 Oct 2025 11:29:10 -0400 Subject: [PATCH] Change the macho linker gc_sections option to respect config's rdynamic setting --- src/link/MachO.zig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/link/MachO.zig b/src/link/MachO.zig index 3e7e3a4e8a08..9ee5ad38ac54 100644 --- a/src/link/MachO.zig +++ b/src/link/MachO.zig @@ -172,6 +172,7 @@ pub fn createEmpty( const optimize_mode = comp.root_mod.optimize_mode; const output_mode = comp.config.output_mode; const link_mode = comp.config.link_mode; + const export_symbols = comp.config.rdynamic; const allow_shlib_undefined = options.allow_shlib_undefined orelse false; @@ -185,7 +186,7 @@ pub fn createEmpty( try std.fmt.allocPrint(arena, "{s}_zcu.o", .{fs.path.stem(emit.sub_path)}) else null, - .gc_sections = options.gc_sections orelse (optimize_mode != .Debug), + .gc_sections = options.gc_sections orelse (!export_symbols and optimize_mode != .Debug), .print_gc_sections = options.print_gc_sections, .stack_size = options.stack_size orelse 16777216, .allow_shlib_undefined = allow_shlib_undefined,