Commit f8458a549b

Jakub Konka <kubkon@jakubkonka.com>
2022-07-22 14:20:28
macho: dead_strip defaults: off for debug, on for release
1 parent 0901e48
Changed files (2)
src/link/MachO/dead_strip.zig
@@ -11,8 +11,6 @@ const MachO = @import("../MachO.zig");
 const MatchingSection = MachO.MatchingSection;
 
 pub fn gcAtoms(macho_file: *MachO) !void {
-    assert(macho_file.base.options.gc_sections.?);
-
     const gpa = macho_file.base.allocator;
     var arena_allocator = std.heap.ArenaAllocator.init(gpa);
     defer arena_allocator.deinit();
src/link/MachO.zig
@@ -712,7 +712,8 @@ fn linkOneShot(self: *MachO, comp: *Compilation, prog_node: *std.Progress.Node)
     const is_dyn_lib = self.base.options.link_mode == .Dynamic and is_lib;
     const is_exe_or_dyn_lib = is_dyn_lib or self.base.options.output_mode == .Exe;
     const stack_size = self.base.options.stack_size_override orelse 0;
-    const gc_sections = self.base.options.gc_sections orelse false;
+    const is_debug_build = self.base.options.optimize_mode == .Debug;
+    const gc_sections = self.base.options.gc_sections orelse !is_debug_build;
 
     const id_symlink_basename = "zld.id";