<div dir="ltr"><div>Debug info linking is currently broken due to how we handle reading and laying out non SHF_ALLOC sections. I posted a patch that partially fixes this, but it's both the wrong approach and doesn't handle multiple input files with debug info (wrong relocation values).</div>
<div><br></div><div>The first issue is representing non SHF_ALLOC atoms in the Atom model. We currently don't have a type for this, and DefinedAtom.cpp makes assumptions about the permissions of an Atom based on their type, so it's hard to use an existing type.</div>
<div><br></div><div>The next problem is in the ELF writer. It currently cannot handle AtomSections that are not in a segment as file offsets and addresses are never set. This means that assignOffsets is not called, and that the atoms within are never added to the _atomToAddressMap. However, we can't just add them to that map with their virtual address, as they don't have a virtual address. We need to use the symbol value, which is the offset into the section. My current hack to fix this is to call assignVirtualAddresses(-fileoffset) and then explicitly added them to the _atomToAddressMap.</div>
<div><br></div><div>Any ideas for the proper fix here?</div><br clear="all"><div>- Michael Spencer</div>
</div>