summaryrefslogtreecommitdiff
path: root/libraries/ghc-prim
diff options
context:
space:
mode:
authorMoritz Angermann <moritz.angermann@gmail.com>2018-02-08 16:07:07 +0800
committerMoritz Angermann <moritz.angermann@gmail.com>2018-02-15 09:43:57 +0800
commitec9aacf3eb2975fd302609163aaef429962ecd87 (patch)
tree20fbf0410a3cc520efa5209ae683b73c5a82f9c4 /libraries/ghc-prim
parentdf449e1744d59eef7f41e09196629bc01815e984 (diff)
downloadhaskell-ec9aacf3eb2975fd302609163aaef429962ecd87.tar.gz
adds -latomic to. ghc-prim
Reviewers: bgamari, hvr Reviewed By: bgamari Subscribers: erikd, hvr, rwbarton, thomie, carter Differential Revision: https://phabricator.haskell.org/D4378
Diffstat (limited to 'libraries/ghc-prim')
-rw-r--r--libraries/ghc-prim/Setup.hs2
-rw-r--r--libraries/ghc-prim/aclocal.m417
-rw-r--r--libraries/ghc-prim/configure.ac18
-rw-r--r--libraries/ghc-prim/ghc-prim.buildinfo.in2
4 files changed, 38 insertions, 1 deletions
diff --git a/libraries/ghc-prim/Setup.hs b/libraries/ghc-prim/Setup.hs
index 5bb17e2392..cccc416d78 100644
--- a/libraries/ghc-prim/Setup.hs
+++ b/libraries/ghc-prim/Setup.hs
@@ -18,7 +18,7 @@ import System.Exit
import System.Directory
main :: IO ()
-main = do let hooks = simpleUserHooks {
+main = do let hooks = autoconfUserHooks {
regHook = addPrimModule
$ regHook simpleUserHooks,
buildHook = build_primitive_sources
diff --git a/libraries/ghc-prim/aclocal.m4 b/libraries/ghc-prim/aclocal.m4
new file mode 100644
index 0000000000..e5695385f2
--- /dev/null
+++ b/libraries/ghc-prim/aclocal.m4
@@ -0,0 +1,17 @@
+# FP_GCC_SUPPORTS__ATOMICS
+# ------------------------
+# Does gcc support the __atomic_* family of builtins?
+AC_DEFUN([FP_GCC_SUPPORTS__ATOMICS],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_MSG_CHECKING([whether GCC supports __atomic_ builtins])
+ echo 'int test(int *x) { int y; __atomic_load(&x, &y, __ATOMIC_SEQ_CST); return x; }' > conftest.c
+ if $CC -c conftest.c > /dev/null 2>&1; then
+ CONF_GCC_SUPPORTS__ATOMICS=YES
+ AC_MSG_RESULT([yes])
+ else
+ CONF_GCC_SUPPORTS__ATOMICS=NO
+ AC_MSG_RESULT([no])
+ fi
+ rm -f conftest.c conftest.o
+])
diff --git a/libraries/ghc-prim/configure.ac b/libraries/ghc-prim/configure.ac
new file mode 100644
index 0000000000..bacc89ccc8
--- /dev/null
+++ b/libraries/ghc-prim/configure.ac
@@ -0,0 +1,18 @@
+AC_INIT([ghc-prim package], [2.1], [glasgow-haskell-bugs@haskell.org], [ghc-prim])
+
+AC_CONFIG_SRCDIR([ghc-prim.cabal])
+
+# -------------------------------------------------------------------------
+dnl ** Used to determine how to compile ghc-prim's atomics.c, used by
+dnl unregisterised, Sparc, and PPC backends.
+FP_GCC_SUPPORTS__ATOMICS
+AC_DEFINE([HAVE_C11_ATOMICS], [$CONF_GCC_SUPPORTS__ATOMICS], [Does GCC support __atomic primitives?])
+
+if test "x$CONF_GCC_SUPPORTS__ATOMICS" = YES
+then PRIM_CFLAGS=-DHAVE_C11_ATOMICS
+ PRIM_EXTRA_LIBRARIES=atomic
+fi
+AC_SUBST([PRIM_CFLAGS])
+AC_SUBST([PRIM_EXTRA_LIBRARIES])
+AC_CONFIG_FILES([ghc-prim.buildinfo])
+AC_OUTPUT
diff --git a/libraries/ghc-prim/ghc-prim.buildinfo.in b/libraries/ghc-prim/ghc-prim.buildinfo.in
new file mode 100644
index 0000000000..a0932824c5
--- /dev/null
+++ b/libraries/ghc-prim/ghc-prim.buildinfo.in
@@ -0,0 +1,2 @@
+cc-options: @PRIM_CFLAGS@
+extra-libraries: @PRIM_EXTRA_LIBRARIES@ \ No newline at end of file