aboutsummaryrefslogtreecommitdiff
path: root/src/link/MachO.zig
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2024-07-11 22:35:52 +0200
committerJakub Konka <kubkon@jakubkonka.com>2024-07-18 09:13:08 +0200
commitb62281a9c87caab22ff22fb783751a1cd784bcaa (patch)
tree79a558be8ca1a37314d222c4b304d229eedefff2 /src/link/MachO.zig
parent90c54f1eb6d34fb703b6c4e093580a0f2f70d559 (diff)
downloadzig-b62281a9c87caab22ff22fb783751a1cd784bcaa.tar.gz
zig-b62281a9c87caab22ff22fb783751a1cd784bcaa.zip
macho: re-enable relocatable mode
Diffstat (limited to 'src/link/MachO.zig')
-rw-r--r--src/link/MachO.zig13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/link/MachO.zig b/src/link/MachO.zig
index 98c1eb2339..2b4005c1fe 100644
--- a/src/link/MachO.zig
+++ b/src/link/MachO.zig
@@ -290,10 +290,16 @@ pub fn deinit(self: *MachO) void {
self.dylibs.deinit(gpa);
self.segments.deinit(gpa);
- for (self.sections.items(.atoms), self.sections.items(.out), self.sections.items(.thunks)) |*atoms, *out, *thnks| {
+ for (
+ self.sections.items(.atoms),
+ self.sections.items(.out),
+ self.sections.items(.thunks),
+ self.sections.items(.relocs),
+ ) |*atoms, *out, *thnks, *relocs| {
atoms.deinit(gpa);
out.deinit(gpa);
thnks.deinit(gpa);
+ relocs.deinit(gpa);
}
self.sections.deinit(gpa);
@@ -1457,10 +1463,10 @@ pub fn dedupLiterals(self: *MachO) !void {
fn claimUnresolved(self: *MachO) void {
if (self.getZigObject()) |zo| {
- zo.claimUnresolved(self);
+ zo.asFile().claimUnresolved(self);
}
for (self.objects.items) |index| {
- self.getFile(index).?.object.claimUnresolved(self);
+ self.getFile(index).?.claimUnresolved(self);
}
}
@@ -3987,6 +3993,7 @@ const Section = struct {
last_atom_index: Atom.Index = 0,
thunks: std.ArrayListUnmanaged(Thunk.Index) = .{},
out: std.ArrayListUnmanaged(u8) = .{},
+ relocs: std.ArrayListUnmanaged(macho.relocation_info) = .{},
};
pub const LiteralPool = struct {