@@ -6963,15 +6963,16 @@ then
69636963fi
69646964
69656965# gh-109054: Check if -latomic is needed to get <pyatomic.h> atomic functions.
6966- # On aarch64, GCC may require programs to be linked explicitly to libatomic.
6967- # Use _Py_atomic_or_uint64() which may require libatomic __atomic_fetch_or_8()
6968- # on Linux aarch64 (or not depending on the compiler and the compiler flags).
6966+ # On Linux aarch64, GCC may require programs and libraries to be linked
6967+ # explicitly to libatomic. Call _Py_atomic_or_uint64() which may require
6968+ # libatomic __atomic_fetch_or_8(), or not, depending on the C compiler and the
6969+ # compiler flags.
69696970#
69706971# Avoid #include <Python.h> or #include <pyport.h>. The <Python.h> header
69716972# requires <pyconfig.h> header which is only written below by AC_OUTPUT below.
6972- # If the check is done after AC_OUTPUT, modifying LIBS has no effect anymore.
6973- # <pyport.h> cannot be included alone, it's designed to be included by
6974- # <Python.h>: it expects other includes and macros to be defined.
6973+ # If the check is done after AC_OUTPUT, modifying LIBATOMIC has no effect
6974+ # anymore. <pyport.h> cannot be included alone, it's designed to be included
6975+ # by <Python.h>: it expects other includes and macros to be defined.
69756976_SAVE_VAR([ CPPFLAGS] )
69766977CPPFLAGS="${BASECPPFLAGS} -I. -I${srcdir}/Include ${CPPFLAGS}"
69776978
@@ -6985,19 +6986,17 @@ AC_CACHE_CHECK([whether libatomic is needed by <pyatomic.h>],
69856986#endif
69866987// Code adapted from Include/pyport.h
69876988#if HAVE_SSIZE_T
6988- typedef ssize_t Py_ssize_t;
6989+ typedef ssize_t Py_ssize_t;
69896990#elif SIZEOF_VOID_P == SIZEOF_SIZE_T
69906991typedef intptr_t Py_ssize_t;
69916992#else
6992- # error "unable to find a type fitting ssize_t "
6993+ # error "unable to define Py_ssize_t "
69936994#endif
69946995
69956996#include "cpython/pyatomic.h"
69966997
69976998int main()
69986999{
6999- // use _Py_atomic_or_uint64() which requires libatomic __atomic_fetch_or_8()
7000- // on Linux aarch64.
70017000 uint64_t byte;
70027001 _Py_atomic_store_uint64(&byte, 2);
70037002 if (_Py_atomic_or_uint64(&byte, 8) != 2) {
0 commit comments