summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorHaochen Tong <i@hexchain.org>2021-10-12 02:07:45 +0800
committerMarge Bot <ben+marge-bot@smart-cactus.org>2021-10-12 19:17:53 -0400
commit234bf3688b14299ad8cebc20206c1a5df34139d4 (patch)
tree7d80044a2f8009aa1763e4c36cd44754bd45147a /configure.ac
parent90f06a0e015e18c066fe1569fb2add318bec72ca (diff)
downloadhaskell-234bf3688b14299ad8cebc20206c1a5df34139d4.tar.gz
Move libatomic check into m4/fp_gcc_supports_atomics.m4
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac35
1 files changed, 3 insertions, 32 deletions
diff --git a/configure.ac b/configure.ac
index cde0637d1f..482892b8e4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -789,13 +789,10 @@ dnl ** See whether cc supports -no-pie
FP_GCC_SUPPORTS_NO_PIE
dnl ** Used to determine how to compile ghc-prim's atomics.c, used by
-dnl unregisterised, Sparc, and PPC backends.
+dnl unregisterised, Sparc, and PPC backends. Also determines whether
+dnl linking to libatomic is required for atomic operations, e.g. on
+dnl RISCV64 GCC.
FP_GCC_SUPPORTS__ATOMICS
-if test $CONF_GCC_SUPPORTS__ATOMICS = YES ; then
- AC_DEFINE([HAVE_C11_ATOMICS], [1], [Does GCC support __atomic primitives?])
-else
- AC_MSG_ERROR([C compiler needs to support __atomic primitives.])
-fi
FP_GCC_EXTRA_FLAGS
@@ -1189,32 +1186,6 @@ AC_LINK_IFELSE([AC_LANG_CALL([], [printf\$LDBLStub])],
FP_CHECK_PTHREADS
-AC_MSG_CHECKING(whether -latomic is needed for sub-word-sized atomic operations)
-AC_LINK_IFELSE([AC_LANG_PROGRAM([[unsigned char a;]], [[__atomic_fetch_or(&a, 1, __ATOMIC_RELAXED);]])],
- [
- AC_MSG_RESULT(no)
- AC_SUBST([CabalNeedLibatomic],[False])
- need_latomic=0
- ],
- [
- _save_LIBS=$LIBS
- LIBS="-latomic"
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[unsigned char a;]], [[__atomic_fetch_or(&a, 1, __ATOMIC_RELAXED);]])],
- [
- AC_MSG_RESULT(yes)
- AC_SUBST([CabalNeedLibatomic],[True])
- need_latomic=1
- ],
- [
- AC_SUBST([CabalNeedLibatomic],[False])
- AC_MSG_ERROR([sub-word-sized atomic operations not available.])
- need_latomic=0
- ])
- LIBS=$_save_LIBS
- ])
-AC_DEFINE_UNQUOTED([NEED_ATOMIC_LIB], [$need_latomic],
- [Define to 1 if we need -latomic for sub-word atomic operations.])
-
dnl ** check for eventfd which is needed by the I/O manager
AC_CHECK_HEADERS([sys/eventfd.h])
AC_CHECK_FUNCS([eventfd])