From 866076b0b2d3797cedc8c2851663029802a84cb2 Mon Sep 17 00:00:00 2001 From: Debian Haskell Group Date: Sat, 21 Sep 2019 11:06:31 +0100 Subject: [PATCH] add_-latomic_to_ghc-prim commit ce3897ffd6e7c8b8f36b8e920168bac8c7f836ae Author: Ilias Tsitsimpis Date: Tue Sep 18 17:45:17 2018 +0200 Fix check whether GCC supports __atomic_ builtins Summary: C11 atomics are never used because: * The program used for checking whether GCC supports __atomic_ builtins fails with the following error: ``` error: size mismatch in argument 2 of `__atomic_load` int test(int *x) { int y; __atomic_load(&x, &y, __ATOMIC_SEQ_CST); return x; } ``` * There is a typo when checking if CONF_GCC_SUPPORTS__ATOMICS equals YES, resulting in PRIM_CFLAGS and PRIM_EXTRA_LIBRARIES never being set. Reviewers: bgamari Reviewed By: bgamari Subscribers: rwbarton, erikd, carter Differential Revision: https://phabricator.haskell.org/D5154 Gbp-Pq: Name add_-latomic_to_ghc-prim --- libraries/ghc-prim/aclocal.m4 | 2 +- libraries/ghc-prim/configure.ac | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/ghc-prim/aclocal.m4 b/libraries/ghc-prim/aclocal.m4 index e5695385..81fc44c5 100644 --- a/libraries/ghc-prim/aclocal.m4 +++ b/libraries/ghc-prim/aclocal.m4 @@ -5,7 +5,7 @@ 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 + 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]) diff --git a/libraries/ghc-prim/configure.ac b/libraries/ghc-prim/configure.ac index bacc89cc..8249be31 100644 --- a/libraries/ghc-prim/configure.ac +++ b/libraries/ghc-prim/configure.ac @@ -8,7 +8,7 @@ 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 +if test "$CONF_GCC_SUPPORTS__ATOMICS" = "YES" then PRIM_CFLAGS=-DHAVE_C11_ATOMICS PRIM_EXTRA_LIBRARIES=atomic fi -- 2.30.2