[PATCH] D30699: [ELF] - Stop producing broken output for R_386_GOT32X relocation.

Rafael EspĂ­ndola via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 30 14:52:31 PDT 2017


On 30 March 2017 at 17:45, H.J. Lu <hjl.tools at gmail.com> wrote:
> On Thu, Mar 30, 2017 at 2:40 PM, Rafael EspĂ­ndola
> <rafael.espindola at gmail.com> wrote:
>>>> 08048074 <_start>:
>>>>  8048074: c7 c0 74 80 04 08     mov    $0x8048074,%eax
>>>>
>>>> as the GOT entry for _start contains the address of _start.
>>>
>>> Even with trunk I get
>>>
>>> 08048094 <_start>:
>>>  8048094:       a1 fc ff ff ff          mov    0xfffffffc,%eax
>>
>> And I still get -4 with the head of the binutils-2_28-branch branch.
>>
>
> The updated i386 psABI requires to encode "mov _start at GOT, %eax" with
> 0x8b opcode with R_386_GOT32X instead of 0xa1 opcode.

What about files produced by old assemblers?

The current ABI also lists  R_386_GOT32 with the same expression as
R_386_GOT32X. When is a R_386_GOT32 required to be evaluated as G + A?

Cheers,
Rafael


More information about the llvm-commits mailing list