Commit b0a20146 authored by Ilias Tsitsimpis's avatar Ilias Tsitsimpis

ghc: Backport upstream commit ec9aacf3eb2 (add -latomic to ghc-prim)

parent d211bc01
ghc (8.4.3-7) experimental; urgency=medium
* Backport upstream commit ec9aacf3eb2 (add -latomic to ghc-prim)
-- Ilias Tsitsimpis <iliastsi@debian.org> Sun, 16 Sep 2018 13:35:25 +0300
ghc (8.4.3-6) experimental; urgency=medium
[ Gianfranco Costamagna ]
......
commit ec9aacf3eb2975fd302609163aaef429962ecd87
Author: Moritz Angermann <moritz.angermann@gmail.com>
Date: Thu Feb 8 16:07:07 2018 +0800
adds -latomic to. ghc-prim
Reviewers: bgamari, hvr
Reviewed By: bgamari
Subscribers: erikd, hvr, rwbarton, thomie, carter
Differential Revision: https://phabricator.haskell.org/D4378
iliastsi: The original patch fails to correctly detect and use C11
atomics, so I modified it based on https://phabricator.haskell.org/D5154.
Index: b/aclocal.m4
===================================================================
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1284,24 +1284,6 @@ AC_SUBST(GccIsClang)
rm -f conftest.txt
])
-# 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
-])
-
# FP_GCC_SUPPORTS_NO_PIE
# ----------------------
# Does gcc support the -no-pie option? If so we should pass it to gcc when
Index: b/configure.ac
===================================================================
--- a/configure.ac
+++ b/configure.ac
@@ -714,11 +714,6 @@ FP_GCC_VERSION
dnl ** See whether gcc 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.
-FP_GCC_SUPPORTS__ATOMICS
-AC_DEFINE([HAVE_C11_ATOMICS], [$CONF_GCC_SUPPORTS__ATOMICS], [Does GCC support __atomic primitives?])
-
FP_GCC_EXTRA_FLAGS
dnl ** look to see if we have a C compiler using an llvm back end.
Index: b/libraries/ghc-prim/Setup.hs
===================================================================
--- 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
Index: b/libraries/ghc-prim/aclocal.m4
===================================================================
--- /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 y; }' > 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
+])
Index: b/libraries/ghc-prim/configure.ac
===================================================================
--- /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 "$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
Index: b/libraries/ghc-prim/ghc-prim.buildinfo.in
===================================================================
--- /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
......@@ -12,3 +12,4 @@ e175aaf6918bb2b497b83618dc4c270a0d231a1c.patch
risc-support.patch
armel-revert-ghci-fixes.patch
fix-build-using-unregisterized-v8.2
add_-latomic_to_ghc-prim
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment