X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=libgfortran%2Facinclude.m4;h=5b0c094e71697e73a3845cf1f22fae326dc90c30;hb=324276ff9b1aa5128e5cb9f5d43182d1ebab0752;hp=dd5429ac0d28fb8fd64316dea56a4772dda113e3;hpb=26724ef992acda61f8d8f0b2bd84647177d491ce;p=gcc.git diff --git a/libgfortran/acinclude.m4 b/libgfortran/acinclude.m4 index dd5429ac0d2..5b0c094e716 100644 --- a/libgfortran/acinclude.m4 +++ b/libgfortran/acinclude.m4 @@ -59,17 +59,17 @@ extern void bar(void) __attribute__((alias("foo")));]], [Define to 1 if the target supports __attribute__((alias(...))).]) fi]) -dnl Check whether the target supports __sync_fetch_and_add. -AC_DEFUN([LIBGFOR_CHECK_SYNC_FETCH_AND_ADD], [ - AC_CACHE_CHECK([whether the target supports __sync_fetch_and_add], - libgfor_cv_have_sync_fetch_and_add, [ +dnl Check whether the target supports __atomic_fetch_add. +AC_DEFUN([LIBGFOR_CHECK_ATOMIC_FETCH_ADD], [ + AC_CACHE_CHECK([whether the target supports __atomic_fetch_add], + libgfor_cv_have_atomic_fetch_add, [ AC_LINK_IFELSE([AC_LANG_PROGRAM([[int foovar = 0;]], [[ -if (foovar <= 0) return __sync_fetch_and_add (&foovar, 1); -if (foovar > 10) return __sync_add_and_fetch (&foovar, -1);]])], - libgfor_cv_have_sync_fetch_and_add=yes, libgfor_cv_have_sync_fetch_and_add=no)]) - if test $libgfor_cv_have_sync_fetch_and_add = yes; then - AC_DEFINE(HAVE_SYNC_FETCH_AND_ADD, 1, - [Define to 1 if the target supports __sync_fetch_and_add]) +if (foovar <= 0) return __atomic_fetch_add (&foovar, 1, __ATOMIC_ACQ_REL); +if (foovar > 10) return __atomic_add_fetch (&foovar, -1, __ATOMIC_ACQ_REL);]])], + libgfor_cv_have_atomic_fetch_add=yes, libgfor_cv_have_atomic_fetch_add=no)]) + if test $libgfor_cv_have_atomic_fetch_add = yes; then + AC_DEFINE(HAVE_ATOMIC_FETCH_ADD, 1, + [Define to 1 if the target supports __atomic_fetch_add]) fi]) dnl Check for pragma weak.