Re: undefined symbol: __aarch64_ldadd8_acq_rel since llvm12 (mongodb44)

From: Dimitry Andric <dim_at_FreeBSD.org>
Date: Mon, 19 Jul 2021 09:01:03 UTC
On 19 Jul 2021, at 09:29, Ronald Klop <ronald-lists@klop.ws> wrote:
> 
> Does anybody have a clue why I get this error since clang 12 on aarch64/arm64?
> Do other ports have the same issue?
> 
> Regards,
> Ronald.
> 
> Van: Ronald Klop <ronald-lists@klop.ws>
> Datum: vrijdag, 16 juli 2021 09:43
> Aan: freebsd-arm@freebsd.org
> Onderwerp: undefined symbol: __aarch64_ldadd8_acq_rel since llvm12 (mongodb44)
>> Hi,
>> I'm also maintaining databases/mongodb44 and this gives undefined symbols since llvm12 (I think).
>> See: http://www.ipv6proxy.net/go.php?u=http://ampere2.nyi.freebsd.org/data/main-arm64-default/pf44e1c1de734_s63ca9ea4f3/logs/errors/mongodb44-4.4.6.log
>> And look for:
>> ld.lld: error: undefined symbol: __aarch64_ldadd8_acq_rel
>> There are a bunch of similar symbols not found while linking.
>> This compiles fine using llvm11 or on amd64.

It turns out clang 12 now enables -moutline-atomics by default, but we
don't yet expose the necessary functions from compiler-rt. As a
temporary workaround, compile with -mno-outline-atomics. Meanwhile,
adding these functions to the compiler-rt lib is on my TODO list.

-Dimitry