[Python-checkins] cpython: Issue #22038, configure: HAVE_STD_ATOMIC now also check that "atomic_int" and

victor.stinner python-checkins at python.org
Wed Jan 14 16:04:35 CET 2015


https://hg.python.org/cpython/rev/dacc944641b1
changeset:   94138:dacc944641b1
parent:      94136:c917ba25c007
user:        Victor Stinner <victor.stinner at gmail.com>
date:        Wed Jan 14 16:01:46 2015 +0100
summary:
  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'".

files:
  configure     |  3 ++-
  configure.ac  |  6 ++++--
  pyconfig.h.in |  2 +-
  3 files changed, 7 insertions(+), 4 deletions(-)


diff --git a/configure b/configure
--- a/configure
+++ b/configure
@@ -15711,7 +15711,8 @@
 
 
     #include <stdatomic.h>
-    _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
--- a/configure.ac
+++ b/configure.ac
@@ -4890,7 +4890,8 @@
 [
   AC_LANG_SOURCE([[
     #include <stdatomic.h>
-    _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_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
--- a/pyconfig.h.in
+++ b/pyconfig.h.in
@@ -880,7 +880,7 @@
 /* Define to 1 if you have the <stdlib.h> 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. */

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list