From ecd480fe93b7ee1882267bed6efbfcfe45402ab6 Mon Sep 17 00:00:00 2001 From: Jakub Konka Date: Sun, 11 Oct 2020 00:38:23 +0200 Subject: [PATCH] Fix writing of load cmds headers *after* symtab update --- src/link/MachO.zig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/link/MachO.zig b/src/link/MachO.zig index b2e81916f..e87488974 100644 --- a/src/link/MachO.zig +++ b/src/link/MachO.zig @@ -367,8 +367,6 @@ pub fn flushModule(self: *MachO, comp: *Compilation) !void { .Lib => return error.TODOImplementWritingLibFiles, } - if (self.cmd_table_dirty) try self.writeCmdHeaders(); - { // Update symbol table. const nlocals = @intCast(u32, self.local_symbols.items.len); @@ -378,6 +376,8 @@ pub fn flushModule(self: *MachO, comp: *Compilation) !void { symtab.nsyms = nlocals + nglobals + nundefs; } + if (self.cmd_table_dirty) try self.writeCmdHeaders(); + if (self.entry_addr == null and self.base.options.output_mode == .Exe) { log.debug("flushing. no_entry_point_found = true\n", .{}); self.error_flags.no_entry_point_found = true;