This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [12/16][binutils][AARCH64]Add relocation support for large memory model. [BFD]Create GOT section for TLSLE_MOVW_TPREL_G(1, 1_NC, 2).




On 04/12/15 09:25, Christophe Lyon wrote:
On 3 December 2015 at 16:19, Jiong Wang <jiong.wang@foss.arm.com> wrote:

On 03/12/15 14:57, Jiong Wang wrote:


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.

Oh, for these GD->LE testcases, shouldn't be shared, otherwise the
relaxation will not happen.


I guess I'm missing something obvious: these 2 testcases PASS for me
(target aarch64-linux-gnu).
In which configuration do you see them failing?

I mean they will fail after we revert this patch.

This patch was trying to fix the failing in an incorrect way.


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




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]