diff options
Diffstat (limited to 'src/link/MachO/ZigObject.zig')
| -rw-r--r-- | src/link/MachO/ZigObject.zig | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/link/MachO/ZigObject.zig b/src/link/MachO/ZigObject.zig index abaa4fe6f7..061f268892 100644 --- a/src/link/MachO/ZigObject.zig +++ b/src/link/MachO/ZigObject.zig @@ -471,7 +471,13 @@ pub fn flushModule(self: *ZigObject, macho_file: *MachO) !void { self.debug_strtab_dirty = false; } } else { - // TODO: relocatable + const sect_index = macho_file.debug_str_sect_index.?; + if (self.debug_strtab_dirty or dw.strtab.buffer.items.len != macho_file.sections.items(.header)[sect_index].size) { + const needed_size = @as(u32, @intCast(dw.strtab.buffer.items.len)); + try macho_file.growSection(sect_index, needed_size); + try macho_file.base.file.?.pwriteAll(dw.strtab.buffer.items, macho_file.sections.items(.header)[sect_index].offset); + self.debug_strtab_dirty = false; + } } } |
