aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2022-07-22 14:20:28 +0200
committerJakub Konka <kubkon@jakubkonka.com>2022-07-22 16:58:21 +0200
commitf8458a549ba7fbd29b3d045019313704f1305e89 (patch)
tree25b0611c1cd7ae9cf4ec1b2230a800495dd05565 /src
parent0901e4805c81873defa0eb595a126473eb09acab (diff)
downloadzig-f8458a549ba7fbd29b3d045019313704f1305e89.tar.gz
zig-f8458a549ba7fbd29b3d045019313704f1305e89.zip
macho: dead_strip defaults: off for debug, on for release
Diffstat (limited to 'src')
-rw-r--r--src/link/MachO.zig3
-rw-r--r--src/link/MachO/dead_strip.zig2
2 files changed, 2 insertions, 3 deletions
diff --git a/src/link/MachO.zig b/src/link/MachO.zig
index 987098cd1f..e24d49cc9c 100644
--- a/src/link/MachO.zig
+++ b/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";
diff --git a/src/link/MachO/dead_strip.zig b/src/link/MachO/dead_strip.zig
index a953e5bc19..b3454dda57 100644
--- a/src/link/MachO/dead_strip.zig
+++ b/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();