[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: libobjc2 relocation issue in aarch64
From: |
David Chisnall |
Subject: |
Re: libobjc2 relocation issue in aarch64 |
Date: |
Wed, 17 Jul 2019 20:56:21 +0100 |
I think the main hint is to use a dynamic library. Static linking is not well
tested on any platform and the assembly code expects a PIC model. I’m happy to
accept patches that improve the static linking experience, but it’s not
something that I have any plans to work on personally.
David
> On 17 Jul 2019, at 20:43, Jordan Schidlowsky <address@hidden> wrote:
>
> I can't seem to get libobjc2 to link in properly to my android app on
> arm64-v8a. I'm using the latest clang prebuilt by Frederik here:
> https://github.com/gnustep/tools-android
>
> I've tried 3 different linkers, and all report the same
> R_AARCH64_ADR_PREL_LO21 issue. bfd was the only linker to provide any
> insight, but it seems like it's related to the SmallObjectClasses symbol.
> Output from each linker is below:
>
> gold:
> libs/libobjc2/objc_msgSend.aarch64.S:97: error: relocation overflow in
> R_AARCH64_ADR_PREL_LO21
>
> lld:
> ld.lld: error:
> ../../../../libs/libobjc2/objc_msgSend.aarch64.S:97:(.text+0xD0): relocation
> R_AARCH64_ADR_PREL_LO21 out of range: 16077624 is not in [-1048576, 1048575]
>
> bfd:
> libs/libobjc2/libobjc.a(objc_msgSend.S.o): In function `objc_msgSend_stret':
> libs/libobjc2/objc_msgSend.aarch64.S:97:(.text+0xd0): relocation truncated to
> fit: R_AARCH64_ADR_PREL_LO21 against symbol `SmallObjectClasses' defined in
> COMMON section in libs/libobjc2/libobjc.a(class_table.c.o)
>
>
> Any thoughts?
> -Jordan