AC_DEFUN([DISPATCH_C_ATOMIC_BUILTINS], [ # # This is a bit subtle: on i386 systems without at least -march=i486 defined, # certain built-in atomics fall back to depending on undefined symbols if # their return values are used. # AC_CACHE_CHECK([for gcc atomic builtins],[dispatch_cv_atomic], [AC_LINK_IFELSE([AC_LANG_PROGRAM([],[[ int i, x =0; i = __sync_add_and_fetch(&x,1); return x;]])],[dispatch_cv_atomic=yes], [saveCFLAGS="$CFLAGS" CFLAGS="$CFLAGS -march=i486" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[[ int i, x =0; i = __sync_add_and_fetch(&x,1); return x;]])],[CFLAGS="$saveCFLAGS" dispatch_cv_atomic="-march=i486" ])])]) ])