-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

aarch64 targets are now failing to build on i386 hosts due to missing
__atomic_load_8() calls since this commit:

https://github.com/qemu/qemu/commit/a0aa44b488b3601415d55041e4619aef5f3a4ba8#diff-c143d686899ae51d7b927d9c682e12fd

I'm unsure if Linux is disabling aarch64 targets for i386 hosts or if
this commit works "just fine" on Linux hosts right now, as it doesn't
work with clang or gcc.

More or less, the code in question ends up looking like this bit of
test code:

#include <stdio.h>
#include <sys/types.h>
#include <machine/atomic.h>

#define atomic_read(ptr)                          \
    ({                                            \
    typeof(*ptr) _val;                            \
     __atomic_load(ptr, &_val, __ATOMIC_RELAXED); \
    _val;                                         \
    })

int main ()
{
        int foo;
        int64_t foo64;

        atomic_read(&foo);
        atomic_read(&foo64);

        return(0);
}


This test code will manifest the same issue as the aarch64 target
building on FreeBSD i386 with the error:

undefined reference to `__atomic_load_8'
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQF8BAEBCgBmBQJW7vgAXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXRCQUFENDYzMkU3MTIxREU4RDIwOTk3REQx
MjAxRUZDQTFFNzI3RTY0AAoJEBIB78oecn5kZsoH+gOHnQEZp967VbHTGFz+loK1
VnwdJC+fxTt/Una2awaztF5mOWcHPQ/yEtZUmsoBOKlynNxHAFEKQHTqA/0H+78g
J1Xyi28cXFZDB4Seuk2tBgpky1rq9xMTHkh3W79Dcn/g1Kpmf4ha06rZYcSITilK
pTOAHCKYTI5X8LW33NibY3avo/p4NSvbm7DTiLGtzR8xiGrtKKTF5UBQ0If3xvnp
VG4aCm9dt9G/KmYvGQAaZqXc3mV5hfVr1cxG++5zprH8CKHBck9uc8pm0o70qUb5
/uhwaQTMiJbRd642/vwUjZuXa4dZCeb3WLHHIz6pNO6HhBBxtXiSFHYTZ4fqdxI=
=t6x6
-----END PGP SIGNATURE-----

Reply via email to