aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2022-12-15 11:25:54 +0100
committerJakub Konka <kubkon@jakubkonka.com>2022-12-16 18:05:58 +0100
commit3af6a4e887bb3cd986a52ea94202a0079f442e9b (patch)
tree113f2bfc12f5430409a6a4273b1ad39439db4313
parent6b99aab0eb25821d91c1708575cabdadc9079024 (diff)
downloadzig-3af6a4e887bb3cd986a52ea94202a0079f442e9b.tar.gz
zig-3af6a4e887bb3cd986a52ea94202a0079f442e9b.zip
macho: generate stabs last to aid in deterministic uuid calculation
-rw-r--r--src/link/MachO/zld.zig14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/link/MachO/zld.zig b/src/link/MachO/zld.zig
index 022167e223..60d0f853ab 100644
--- a/src/link/MachO/zld.zig
+++ b/src/link/MachO/zld.zig
@@ -2556,12 +2556,6 @@ pub const Zld = struct {
}
}
- if (!self.options.strip) {
- for (self.objects.items) |object| {
- try self.generateSymbolStabs(object, &locals);
- }
- }
-
var exports = std.ArrayList(macho.nlist_64).init(gpa);
defer exports.deinit();
@@ -2592,6 +2586,14 @@ pub const Zld = struct {
try imports_table.putNoClobber(global, new_index);
}
+ // We generate stabs last in order to ensure that the strtab always has debug info
+ // strings trailing
+ if (!self.options.strip) {
+ for (self.objects.items) |object| {
+ try self.generateSymbolStabs(object, &locals);
+ }
+ }
+
const nlocals = @intCast(u32, locals.items.len);
const nexports = @intCast(u32, exports.items.len);
const nimports = @intCast(u32, imports.items.len);