[12/16][binutils][AARCH64]Add relocation support for large memory model. [BFD]Create GOT section for TLSLE_MOVW_TPREL_G(1, 1_NC, 2).
Jiong Wang
jiong.wang@foss.arm.com
Thu Dec 3 14:57:00 GMT 2015
On 03/12/15 14:50, Renlin Li wrote:
>
>
> On 03/12/15 14:23, Jiong Wang wrote:
>>
>>
>> On 08/09/15 19:00, Renlin Li wrote:
>>> Hi all,
>>>
>>> This patch fixes a bug, got section is not generated for
>>> TLSLE_MOVW_TPREL_G1,TLSLE_MOVW_TPREL_G1_NC, TLSLE_MOVW_TPREL_G2
>>> previously.
>>>
>>> LD regression test Okay. Okay to commit?
>>>
>>> Regards,
>>> Renlin
>>>
>>> bfd/ChangeLog:
>>>
>>> 2015-09-08 Renlin Li <renlin.li@arm.com>
>>>
>>> * elfnn-aarch64.c (elfNN_aarch64_check_relocs): Create GOT section
>>> for TLSLE_MOVW_TPREL_G(1, 1_NC, 2) relocation.
>>
>> This looks wrong to me, and will cause inconsistent inside AArch64
>> backend.
>>
>> All TLS Local Executable relocation types don't need any GOT entry,
>> we shouldn't listed them here.
>
> Yes, you are right. I am wrong there.
>
>>
>> Looks like this patch was trying to fix the following two testcase
>> failures:
>>
>> Running
>> /work/GNU-TOOLCHAIN/binutils-gdb/ld/testsuite/ld-aarch64/aarch64-elf.exp
>> ...
>> FAIL: ld-aarch64/tls-relax-large-gd-le
>> FAIL: ld-aarch64/tls-relax-large-desc-le
>>
>> The correct fix is to add "-shared" to the test option, then the
>> symbol _GLOBAL_OFFSET_TABLE_ will be defined, always.
>
> -shared could make the test cases pass, but is it required? The test
> case itself should be legal even without "-shared".
For that two particular testcases, the most important thing is to make
sure the tls relaxations are tested, either "-shared" or not doesn't matter.
As you have referenced _GLOBAL_OFFSET_TABLE_, you need to specify
-shared, or you can just remove the reference, they are not related
what's tested.
>
> Regards,
> Renlin Li
>
>
More information about the Binutils
mailing list