[LLVMdev] [lld] Handle _GLOBAL_OFFSET_TABLE symbol

Shankar Easwaran shankare at codeaurora.org
Mon Oct 21 13:58:29 PDT 2013


On 10/21/2013 3:47 PM, Simon Atanasyan wrote:
> The Hexagon target adds new atom using the addAbsoluteAtom() functions
> and then assigns a virtual address in the finalizeSymbolValues()
> routine. The X86_64 target uses addAtom() function to add an object of
> the GLOBAL_OFFSET_TABLEAtom class to do the same thing. What is the
> reason of this difference?
This should be fixed and both should use the addAbsoluteAtom function.

> Is the GLOBAL_OFFSET_TABLEAtom just a
> useful wrapper which eliminates the necessity to assign an address to
> the atom explicitly in the finalizeSymbolValues() routine?
Its being used as a wrapper currently, as this is an AbsoluteAtom and 
not a DefinedAtom. This should also be fixed.

The problem is this is being treated as a DefinedAtom, which should be 
an Absolute atom in my opinion.

Shankar Easwaran

-- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, 
hosted by the Linux Foundation



More information about the llvm-dev mailing list