Undefined reference to __atomic_store_8
Tijl Coosemans
tijl at FreeBSD.org
Sun Aug 9 12:37:51 UTC 2020
On Sun, 9 Aug 2020 15:36:51 +0400 Gleb Popov <arrowd at freebsd.org> wrote:
> On Sat, Aug 8, 2020 at 5:30 PM Konstantin Belousov <kostikbel at gmail.com>
> wrote:
>> For code generated by gcc or clang, yes.
>> If the reference to the symbol was generated by ghc, then I do not know.
>
> This doesn't seem to work.
>
> The code referencing __atomic_load_n() is C and GHC buildsystem already
> passes -march=i686. Still, the problem persists.
> Interestingly, 12.1-RELEASE-p2 doesn't have this problem, but
> 12.1-RELEASE-p7 does.
>
> What library provides these symbols when clang is used? And I'm a bit
> obscured how -march flag can affect these symbols' visibility at all?
There is no such library. i586 supports 64 bit atomic operations so
the compiler should emit instructions for that instead of a function
call. Check that *.o files that match "__atomic_load" are in fact built
with -march.
12.1-RELEASE-p7 probably has a newer clang that fixed an issue where the
compiler would always emit instructions, even for i386 and i486.
More information about the freebsd-toolchain
mailing list