authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2020-12-31 08:45:27+01:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2020-12-31 10:19:04+01:00
log9369176332a11fa92d3a0ed4493a22f4ed2701af
tree3fe581a6ec395a16fd21fd9e96f4429e26b146f9
parentea4ff34e13d9768eedcc9add608be2366d6ad030

macho: advance VM address of DWARF sections when relocating


1 files changed, 6 insertions(+), 4 deletions(-)

src/link/MachO/DebugSymbols.zig+6-4
......@@ -412,7 +412,9 @@ pub fn flushModule(self: *DebugSymbols, allocator: *Allocator, options: link.Opt
412412 const allocated_size = dwarf_segment.allocatedSize(debug_abbrev_sect.offset);
413413 if (needed_size > allocated_size) {
414414 debug_abbrev_sect.size = 0; // free the space
415 debug_abbrev_sect.offset = @intCast(u32, dwarf_segment.findFreeSpace(needed_size, 1, null));
415 const offset = dwarf_segment.findFreeSpace(needed_size, 1, null);
416 debug_abbrev_sect.offset = @intCast(u32, offset);
417 debug_abbrev_sect.addr = dwarf_segment.inner.vmaddr + offset - dwarf_segment.inner.fileoff;
416418 }
417419 debug_abbrev_sect.size = needed_size;
418420 log.debug("__debug_abbrev start=0x{x} end=0x{x}", .{
......@@ -536,9 +538,9 @@ pub fn flushModule(self: *DebugSymbols, allocator: *Allocator, options: link.Opt
536538 const allocated_size = dwarf_segment.allocatedSize(debug_aranges_sect.offset);
537539 if (needed_size > allocated_size) {
538540 debug_aranges_sect.size = 0; // free the space
539 const offset = dwarf_segment.findFreeSpace(needed_size, 16, null);
540 debug_aranges_sect.offset = @intCast(u32, offset);
541 debug_aranges_sect.addr = dwarf_segment.inner.vmaddr + offset - dwarf_segment.inner.fileoff;
541 const new_offset = dwarf_segment.findFreeSpace(needed_size, 16, null);
542 debug_aranges_sect.addr = dwarf_segment.inner.vmaddr + new_offset - dwarf_segment.inner.fileoff;
543 debug_aranges_sect.offset = @intCast(u32, new_offset);
542544 }
543545 debug_aranges_sect.size = needed_size;
544546 log.debug("__debug_aranges start=0x{x} end=0x{x}", .{