authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2024-02-07 12:27:49+01:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2024-02-07 19:27:26+01:00
log35ac066f1d550445519aceb098d7e3f517f98c55
treeb19b574660062aa19b6cc20633c77c8cb06751ce
parentefa1c6124d167b3144c4d4b15ebf384130d35abd

macho: fix writing SYMDEF symtab size


1 files changed, 3 insertions(+), 2 deletions(-)

src/link/MachO/Archive.zig+3-2
......@@ -213,10 +213,11 @@ pub const ArSymtab = struct {
213213 }
214214
215215 pub fn write(ar: ArSymtab, format: Format, macho_file: *MachO, writer: anytype) !void {
216 const ptr_width = ptrWidth(format);
216217 // Header
217218 try writeHeader(SYMDEF, ar.size(format), format, writer);
218219 // Symtab size
219 try writeInt(format, ar.entries.items.len * 2, writer);
220 try writeInt(format, ar.entries.items.len * 2 * ptr_width, writer);
220221 // Symtab entries
221222 for (ar.entries.items) |entry| {
222223 const file_off = switch (macho_file.getFile(entry.file).?) {
......@@ -230,7 +231,7 @@ pub const ArSymtab = struct {
230231 try writeInt(format, file_off, writer);
231232 }
232233 // Strtab size
233 const strtab_size = mem.alignForward(u64, ar.strtab.buffer.items.len, ptrWidth(format));
234 const strtab_size = mem.alignForward(u64, ar.strtab.buffer.items.len, ptr_width);
234235 const padding = strtab_size - ar.strtab.buffer.items.len;
235236 try writeInt(format, strtab_size, writer);
236237 // Strtab