aboutsummaryrefslogtreecommitdiff
path: root/src/link/MachO.zig
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2024-02-02 22:17:25 +0100
committerJakub Konka <kubkon@jakubkonka.com>2024-02-03 09:28:25 +0100
commite10a2018a7b6a51243589ec95842d2cef2da45ac (patch)
treed549caea83d2b3060e5d14c856a2509d977eb951 /src/link/MachO.zig
parentdc222c9ba5865176fde9607d10dd5dca69654894 (diff)
downloadzig-e10a2018a7b6a51243589ec95842d2cef2da45ac.tar.gz
zig-e10a2018a7b6a51243589ec95842d2cef2da45ac.zip
macho: emit relocs for ZigObject
Diffstat (limited to 'src/link/MachO.zig')
-rw-r--r--src/link/MachO.zig12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/link/MachO.zig b/src/link/MachO.zig
index a78ebee8cb..7f58198ce0 100644
--- a/src/link/MachO.zig
+++ b/src/link/MachO.zig
@@ -615,6 +615,7 @@ pub fn flushModule(self: *MachO, arena: Allocator, prog_node: *std.Progress.Node
const sect = &self.sections.items(.header)[atom.out_n_sect];
if (sect.isZerofill()) continue;
if (mem.indexOf(u8, sect.segName(), "ZIG") == null) continue; // Non-Zig sections are handled separately
+ if (atom.getRelocs(self).len == 0) continue;
// TODO: we will resolve and write ZigObject's TLS data twice:
// once here, and once in writeAtoms
const atom_size = math.cast(usize, atom.size) orelse return error.Overflow;
@@ -4107,10 +4108,13 @@ fn formatSections(
_ = unused_fmt_string;
const slice = self.sections.slice();
for (slice.items(.header), slice.items(.segment_id), 0..) |header, seg_id, i| {
- try writer.print("sect({d}) : seg({d}) : {s},{s} : @{x} ({x}) : align({x}) : size({x})\n", .{
- i, seg_id, header.segName(), header.sectName(), header.addr, header.offset,
- header.@"align", header.size,
- });
+ try writer.print(
+ "sect({d}) : seg({d}) : {s},{s} : @{x} ({x}) : align({x}) : size({x}) : relocs({x};{d})\n",
+ .{
+ i, seg_id, header.segName(), header.sectName(), header.addr, header.offset,
+ header.@"align", header.size, header.reloff, header.nreloc,
+ },
+ );
}
}