Jonathan Gray <j...@jsg.id.au> writes: > On Sat, May 13, 2017 at 02:22:30AM +0200, Jan Beich wrote: > >> "int" isn't large enough and lack of builtins only manifests at link time. >> This was breaking build on FreeBSD 11.0 i386 with Clang 3.8.0. >> >> glsl/.libs/libstandalone.a(libmesautil_la-disk_cache.o): In function >> `disk_cache_remove': >> disk_cache.c:(.text+0x763): undefined reference to `__atomic_fetch_add_8' >> glsl/.libs/libstandalone.a(libmesautil_la-disk_cache.o): In function >> `cache_put': >> disk_cache.c:(.text+0xabc): undefined reference to `__atomic_fetch_add_8' >> disk_cache.c:(.text+0xec1): undefined reference to `__atomic_fetch_add_8' >> c++: error: linker command failed with exit code 1 (use -v to see invocation) > > You should be building with -march=i586 on i386 for CX8.
-march=i586 doesn't help. Dimitry, could this be a Clang bug? $ cat a.c #include <stdint.h> int main() { uint64_t n; return __atomic_load_n(&n, __ATOMIC_ACQUIRE); } $ clang40 -m32 -march=i586 a.c /tmp/a-d984ec.o: In function `main': a.c:(.text+0x21): undefined reference to `__atomic_load_8' clang-4.0: error: linker command failed with exit code 1 (use -v to see invocation) full build log: http://sprunge.us/LJdh > > The diff is wrong as it will break other architectures, ie powerpc. And it's not broken already? -latomic isn't passed anywhere. > > commit a6a38a038bd62e6d9558905f00bef81b5e7e6fcc > Author: Grazvydas Ignotas <nota...@gmail.com> > Date: Fri Mar 31 01:26:25 2017 +0300 > > util/u_atomic: provide 64bit atomics where they're missing > > attempts to handle powerpc like situations, though not sync > builtins being missing entirely. > >> --- >> configure.ac | 5 +++-- >> 1 file changed, 3 insertions(+), 2 deletions(-) >> >> diff --git a/configure.ac b/configure.ac >> index 957d15df8c..5b11941a0c 100644 >> --- a/configure.ac >> +++ b/configure.ac >> @@ -403,9 +403,10 @@ AM_CONDITIONAL([SSE41_SUPPORTED], [test >> x$SSE41_SUPPORTED = x1]) >> AC_SUBST([SSE41_CFLAGS], $SSE41_CFLAGS) >> >> dnl Check for new-style atomic builtins >> -AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ >> +AC_LINK_IFELSE([AC_LANG_SOURCE([[ >> +#include <stdint.h> >> int main() { >> - int n; >> + uint64_t n; >> return __atomic_load_n(&n, __ATOMIC_ACQUIRE); >> }]])], GCC_ATOMIC_BUILTINS_SUPPORTED=1) >> if test "x$GCC_ATOMIC_BUILTINS_SUPPORTED" = x1; then >> _______________________________________________ >> mesa-dev mailing list >> mesa-dev@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev