1AC_DEFUN([DISPATCH_C_ATOMIC_BUILTINS], [ 2# 3# This is a bit subtle: on i386 systems without at least -march=i486 defined, 4# certain built-in atomics fall back to depending on undefined symbols if 5# their return values are used. 6# 7AC_CACHE_CHECK([for gcc atomic builtins],[dispatch_cv_atomic], 8[AC_LINK_IFELSE([AC_LANG_PROGRAM([],[[ 9int i, x =0; 10i = __sync_add_and_fetch(&x,1); 11return x;]])],[dispatch_cv_atomic=yes], 12 [saveCFLAGS="$CFLAGS" 13 CFLAGS="$CFLAGS -march=i486" 14 AC_LINK_IFELSE([AC_LANG_PROGRAM([],[[ 15 int i, x =0; 16 i = __sync_add_and_fetch(&x,1); 17 return x;]])],[CFLAGS="$saveCFLAGS" 18dispatch_cv_atomic="-march=i486" 19])])]) 20 21]) 22