Undefined reference to __atomic_store_8

Tijl Coosemans tijl at FreeBSD.org
Sat Aug 8 14:12:04 UTC 2020


On Sat, 8 Aug 2020 12:37:42 +0400 Gleb Popov <arrowd at freebsd.org> wrote:
> On Sat, Aug 8, 2020 at 1:29 AM Konstantin Belousov <kostikbel at gmail.com>
> wrote:
>> On Fri, Aug 07, 2020 at 08:42:12PM +0400, Gleb Popov wrote:
>>> Hello toolchain@
>>> 
>>> I'm testing a new release of GHC (Haskell compiler) and it fails to link
>>> to i386 architectures with
>>> 
>>> /wrkdirs/usr/ports/lang/ghc/work/ghc-8.10.1/libraries/ghc-prim/dist-install/build/libHSghc-prim-0.6.1-ghc8.10.1.so:
>>> undefined reference to `__atomic_store_8'
>>> 
>>> /wrkdirs/usr/ports/lang/ghc/work/ghc-8.10.1/libraries/ghc-prim/dist-install/build/libHSghc-prim-0.6.1-ghc8.10.1.so:
>>> undefined reference to `__atomic_load_8'
>>> 
>>> Any suggestions on how to fix this?
>> 
>> Either link to libatomic from recent gcc, or switch target cpu to something
>> that is pentium or newer.  I doubt that it is reasonable to run GHC on 486.
> 
> By switching target CPU you mean passing -march=pentium?

Some ports use this:

.include <bsd.port.options.mk>
[...]
.if ${ARCH} == i386 && empty(CFLAGS:M-march=*)
CFLAGS+=	-march=i586
.endif


More information about the freebsd-toolchain mailing list