[PR22764][LD][AARCH64]Allow R_AARCH64_ABS16 and R_AARCH64_ABS32 against absolution symbol or undefine symbol in shared object under LP64 abi.
Renlin Li
renlin.li@foss.arm.com
Mon Feb 5 14:10:00 GMT 2018
Hi Nick,
Thanks for the review!
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?
Regards,
Renlin
On 05/02/18 12:53, Nick Clifton wrote:
> Hi Renlin,
>
>> Okay to commit and backport to 2.30 branch?
>
> Approved for branch and mainline.
>
> One thing though - and I am just being paranoid now -
> can you get an indirect symbol that points to an absolute
> symbol ?
>
> If so, then you would need to enhance your check to follow
> any indirect symbol to see what type it (eventually) becomes...
>
> Cheers
> Nick
>
More information about the Binutils
mailing list