[llvm-dev] Linking android with lld: aarch64 target

Minseong Kim via llvm-dev llvm-dev at lists.llvm.org
Mon Apr 3 22:49:22 PDT 2017


Thank you~

I filed a bug report following your suggestion:

https://bugs.llvm.org/show_bug.cgi?id=32518

cheers,
-- Min

On 1 April 2017 at 07:04, Sean Silva <chisophugis at gmail.com> wrote:

>
>
> On Fri, Mar 24, 2017 at 12:18 AM, Minseong Kim via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
>> On 23 March 2017 at 21:35, Peter Smith <peter.smith at linaro.org> wrote:
>>
>>> Hello Min,
>>>
>>> This error message occurs when the linker would have to create a
>>> dynamic relocation in a read-only part of the program, which isn't
>>> usually allowed when making a position independent shared-library or
>>> position independent executable. In practice this usually means that
>>> one or more of the objects hasn't been compiled to be position
>>> independent -fPIC.
>>>
>>
>> OK~ I will check the objects to be linked, if they are compiled (with
>> -fPIC or not).
>>
>> It is difficult to tell much more without knowing the compiler and
>>> linker options. The R_AARCH64_PREL64 relocation is a relative
>>> relocation, this can require a dynamic relocation if the symbol it
>>> refers to is preemptible (i.e another definition of the symbol could
>>> potentially override it at load-time).
>>>
>>> Given that the file sha1-armv8.S is an assembler file, and I assume
>>> that the link with the same inputs works on ld.bfd and ld.gold, I can
>>> only think that it will either be lld is selecting a different object,
>>> or ld.bfd and ld.gold are resolving the R_AARCH64_PREL64 relocation in
>>> this case and lld is not.
>>>
>>
>> Yes, both ld.bfd and ld.gold works with the same inputs. I will keep
>> looking for the cause with your suggestions in mind.
>>
>
> If you can run the LLD link with `--reproduce repro.tar` and then
> uploading repro.tar somewhere, it will be easier for us to take a look at
> it (e.g. file a bug in llvm's bugzilla).
>
> -- Sean Silva
>
>
>>
>> Thanks again, Peter.
>>
>> cheers,
>> -- Min
>>
>>
>>> Peter
>>>
>>> On 23 March 2017 at 04:29, Minseong Kim via llvm-dev
>>> <llvm-dev at lists.llvm.org> wrote:
>>> > It would be great if anyone can share your thoughts about the cause and
>>> > possibly fix of the error below ?
>>> >
>>> > I would like to know why it is caused and how it can be fixed (if
>>> possible)
>>> > ?
>>> >
>>> > The error message is:
>>> >
>>> > ~/llvm/build/install_android/linux-x86/clang-3688880/bin/ld.lld:
>>> error:
>>> > external/boringssl/linux-aarch64/crypto/sha/sha1-armv8.S:1202: can't
>>> create
>>> > dynamic relocation R_AARCH64_PREL64 against symbol 'OPENSSL_armcap_P'
>>> > defined in
>>> > out/target/product/hikey/obj/STATIC_LIBRARIES/libcrypto_inte
>>> rmediates/libcrypto.a(sha1-armv8.o)
>>> > clang-5.0: error: linker command failed with exit code 1 (use -v to see
>>> > invocation)
>>> >
>>> > cheers,
>>> > -- Min
>>> >
>>> >
>>> > _______________________________________________
>>> > LLVM Developers mailing list
>>> > llvm-dev at lists.llvm.org
>>> > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>> >
>>>
>>
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170404/2954597d/attachment.html>


More information about the llvm-dev mailing list