From 923e06f77d7cd3c998913568128e8a41c55136bd Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Wed, 14 Jan 2015 16:01:46 +0100 Subject: Issue #22038, configure: HAVE_STD_ATOMIC now also check that "atomic_int" and "_Atomic void*" types work. Change needed on FreeBSD 10 where stdatomic.h is available but the compiler fails on "_Atomic void*" with "_Atomic cannot be applied to incomplete type 'void'". --- configure | 3 ++- configure.ac | 6 ++++-- pyconfig.h.in | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/configure b/configure index 1ba0e94..ecefde4 100755 --- a/configure +++ b/configure @@ -15711,7 +15711,8 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #include - _Atomic int value = ATOMIC_VAR_INIT(1); + atomic_int value = ATOMIC_VAR_INIT(1); + _Atomic void *py_atomic_address = (void*) &value; int main() { int loaded_value = atomic_load(&value); return 0; diff --git a/configure.ac b/configure.ac index da096a7..c751622 100644 --- a/configure.ac +++ b/configure.ac @@ -4890,7 +4890,8 @@ AC_LINK_IFELSE( [ AC_LANG_SOURCE([[ #include - _Atomic int value = ATOMIC_VAR_INIT(1); + atomic_int value = ATOMIC_VAR_INIT(1); + _Atomic void *py_atomic_address = (void*) &value; int main() { int loaded_value = atomic_load(&value); return 0; @@ -4901,7 +4902,8 @@ AC_LINK_IFELSE( AC_MSG_RESULT($have_stdatomic_h) if test "$have_stdatomic_h" = yes; then - AC_DEFINE(HAVE_STD_ATOMIC, 1, [Has stdatomic.h]) + AC_DEFINE(HAVE_STD_ATOMIC, 1, + [Has stdatomic.h, atomic_int and _Atomic void* types work]) fi # Check for GCC >= 4.7 __atomic builtins diff --git a/pyconfig.h.in b/pyconfig.h.in index 10d5f4a..507a7ab 100644 --- a/pyconfig.h.in +++ b/pyconfig.h.in @@ -880,7 +880,7 @@ /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H -/* Has stdatomic.h */ +/* Has stdatomic.h, atomic_int and _Atomic void* types work */ #undef HAVE_STD_ATOMIC /* Define to 1 if you have the `strdup' function. */ -- cgit v0.12