[PATCH] D19995: Optimize access to global variable references in PIE mode when linker supports copy relocations for PIE

H.J. Lu via llvm-commits llvm-commits at lists.llvm.org
Mon May 9 08:08:28 PDT 2016


On Mon, May 9, 2016 at 7:53 AM, Joerg Sonnenberger via llvm-commits
<llvm-commits at lists.llvm.org> wrote:
> On Mon, May 09, 2016 at 07:30:20AM -0700, H.J. Lu wrote:
>> > The original ABI design was static linking and dynamic linking of the
>> > main program from exactly the same object files. Using GOT-style
>> > relocations is prohibitive on all platforms without cheap PC-relative
>> > addressing. This includes for example i386. I don't know why amd64
>>
>> You can use the new R_386_GOT32X relocation to access the
>> GOT in executable with the base register, like
>>
>> movl $foo at GOT, %eax
>> movl foo at GOT, %eax
>>
>> But not all linkers can relocate it properly.
>
> But that still requires the base register to be set up?

The same as x86-64.


-- 
H.J.


More information about the llvm-commits mailing list