diff options
| author | Jakub Konka <kubkon@jakubkonka.com> | 2024-02-02 22:17:25 +0100 |
|---|---|---|
| committer | Jakub Konka <kubkon@jakubkonka.com> | 2024-02-03 09:28:25 +0100 |
| commit | e10a2018a7b6a51243589ec95842d2cef2da45ac (patch) | |
| tree | d549caea83d2b3060e5d14c856a2509d977eb951 /src/link/MachO.zig | |
| parent | dc222c9ba5865176fde9607d10dd5dca69654894 (diff) | |
| download | zig-e10a2018a7b6a51243589ec95842d2cef2da45ac.tar.gz zig-e10a2018a7b6a51243589ec95842d2cef2da45ac.zip | |
macho: emit relocs for ZigObject
Diffstat (limited to 'src/link/MachO.zig')
| -rw-r--r-- | src/link/MachO.zig | 12 |
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, + }, + ); } } |
