[PR22764][LD][AARCH64]Allow R_AARCH64_ABS16 and R_AARCH64_ABS32 against absolution symbol or undefine symbol in shared object under LP64 abi.
Nick Clifton
nickc@redhat.com
Mon Feb 5 17:23:00 GMT 2018
Hi Renlin,
> Regarding for the indirect symbol case you pointed out,
> I saw the following code in elfNN_aarch64_check_relocs ()
>
>> Â Â Â Â Â if (r_symndx < symtab_hdr->sh_info)
>> Â Â Â Â {
>>      /* A local symbol. */
>> Â Â Â Â Â ...
>> Â Â Â Â }
>> Â Â Â Â Â else
>> Â Â Â Â {
>> Â Â Â Â Â h = sym_hashes[r_symndx - symtab_hdr->sh_info];
>> Â Â Â Â Â while (h->root.type == bfd_link_hash_indirect
>> Â Â Â Â Â Â Â Â || h->root.type == bfd_link_hash_warning)
>> Â Â Â Â Â Â Â h = (struct elf_link_hash_entry *) h->root.u.i.link;
>> Â Â Â Â }
>
> This is done before the check happens.
> Does this mean, h is already been processed to points to final symbol?
Yes. :-) [I should have looked further back in the code when I was reviewing the patch].
Cheers
Nick
More information about the Binutils
mailing list