[lld] r253352 - [ELF2/AArch64] Add lazy relocation support for AArch64.

Igor Kudrin via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 19 10:47:33 PST 2015


Hi,

Please take a look at http://reviews.llvm.org/D14833, it can probably 
solve the problem.

On 18.11.2015 22:57, Davide Italiano wrote:
> On Wed, Nov 18, 2015 at 5:15 AM, Igor Kudrin <ikudrin.dev at gmail.com> wrote:
>> Hi,
>>
>> I guess, there could be some global symbols with R_AARCH64_ADR_PREL_PG_HI21
>> relocation types.
>> Could you please send me an output of 'readelf -rs try'?
>>
>> Thanks!
>>
> You can find the output here:
> http://people.freebsd.org/~davide/llvm/aarch64_reloc_unresolved.txt
>
> FWIW, I'm also running with the following local patch (which I plan to
> commit after I write a testcase), otherwise linking will fail because
> of an unresolved relocation:
>
> diff --git a/ELF/Target.cpp b/ELF/Target.cpp
> index 4a8dc9f..cfbc1f2 100644
> --- a/ELF/Target.cpp
> +++ b/ELF/Target.cpp
> @@ -742,6 +742,10 @@ void AArch64TargetInfo::relocateOne(uint8_t *Loc,
> uint8_t *BufEnd,
>       or32le(Loc, (X & 0x0FFFFFFC) >> 2);
>       break;
>     }
> +  case R_AARCH64_LDST8_ABS_LO12_NC:
> +    // No overflow check needed.
> +    or32le(Loc, (SA & 0xFFF) << 10);
> +    break;
>     case R_AARCH64_LDST64_ABS_LO12_NC:
>       // No overflow check needed.
>       or32le(Loc, (SA & 0xFF8) << 7);
>
>



More information about the llvm-commits mailing list