[LLVMdev] How to prevent LLVM from emitting R_X86_64_32 ELF relocations?

Yuri
Mon, 29 Apr 2013 20:29:34 -0000

On 04/29/2013 09:12, Keith Walker wrote:
> You only need to go to 64-bit DWARF when your debugging information becomes
> too large to fit in 32-bit DWARF tables.

I am not sure if this is true.
Currently R_X86_64_32 EL relocations are issued for DWARF-32 debug info
sections. This is because the size of address in DWARF-32 is only
32-bits, according to the above mentioned specification. Such
relocations can't be resolved (without overflow) when the base address
is 64-bit and higher than 4GB threshold.

So I have to always load such ELFs into the space within the first 4GB,
otherwise relocation resolver will fail with overflow.

Yuri