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'".
This commit is contained in:
parent
3be472b5f7
commit
923e06f77d
|
@ -15711,7 +15711,8 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
|
||||||
|
|
||||||
#include <stdatomic.h>
|
#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 main() {
|
||||||
int loaded_value = atomic_load(&value);
|
int loaded_value = atomic_load(&value);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -4890,7 +4890,8 @@ AC_LINK_IFELSE(
|
||||||
[
|
[
|
||||||
AC_LANG_SOURCE([[
|
AC_LANG_SOURCE([[
|
||||||
#include <stdatomic.h>
|
#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 main() {
|
||||||
int loaded_value = atomic_load(&value);
|
int loaded_value = atomic_load(&value);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -4901,7 +4902,8 @@ AC_LINK_IFELSE(
|
||||||
AC_MSG_RESULT($have_stdatomic_h)
|
AC_MSG_RESULT($have_stdatomic_h)
|
||||||
|
|
||||||
if test "$have_stdatomic_h" = yes; then
|
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
|
fi
|
||||||
|
|
||||||
# Check for GCC >= 4.7 __atomic builtins
|
# Check for GCC >= 4.7 __atomic builtins
|
||||||
|
|
|
@ -880,7 +880,7 @@
|
||||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||||
#undef HAVE_STDLIB_H
|
#undef HAVE_STDLIB_H
|
||||||
|
|
||||||
/* Has stdatomic.h */
|
/* Has stdatomic.h, atomic_int and _Atomic void* types work */
|
||||||
#undef HAVE_STD_ATOMIC
|
#undef HAVE_STD_ATOMIC
|
||||||
|
|
||||||
/* Define to 1 if you have the `strdup' function. */
|
/* Define to 1 if you have the `strdup' function. */
|
||||||
|
|
Loading…
Reference in New Issue