| // This file moves some of the autoconf magic to compile-time when building on | |
| // macOS. This is needed for building 4-way universal binaries and for 64-bit | |
| // universal binaries because the values redefined below aren't configure-time | |
| // constant but only compile-time constant in these scenarios. | |
| #ifndef PY_MACCONFIG_H | |
| #define PY_MACCONFIG_H | |
| #ifdef __APPLE__ | |
| #undef ALIGNOF_MAX_ALIGN_T | |
| #undef SIZEOF_LONG | |
| #undef SIZEOF_LONG_DOUBLE | |
| #undef SIZEOF_PTHREAD_T | |
| #undef SIZEOF_SIZE_T | |
| #undef SIZEOF_TIME_T | |
| #undef SIZEOF_VOID_P | |
| #undef SIZEOF__BOOL | |
| #undef SIZEOF_UINTPTR_T | |
| #undef SIZEOF_PTHREAD_T | |
| #undef WORDS_BIGENDIAN | |
| #undef DOUBLE_IS_BIG_ENDIAN_IEEE754 | |
| #undef DOUBLE_IS_LITTLE_ENDIAN_IEEE754 | |
| #undef HAVE_GCC_ASM_FOR_X87 | |
| #undef HAVE_GCC_ASM_FOR_X64 | |
| #undef VA_LIST_IS_ARRAY | |
| #if defined(__LP64__) && defined(__x86_64__) | |
| # define VA_LIST_IS_ARRAY 1 | |
| #endif | |
| #undef HAVE_LARGEFILE_SUPPORT | |
| #ifndef __LP64__ | |
| # define HAVE_LARGEFILE_SUPPORT 1 | |
| #endif | |
| #undef SIZEOF_LONG | |
| #ifdef __LP64__ | |
| # define SIZEOF__BOOL 1 | |
| # define SIZEOF__BOOL 1 | |
| # define SIZEOF_LONG 8 | |
| # define SIZEOF_PTHREAD_T 8 | |
| # define SIZEOF_SIZE_T 8 | |
| # define SIZEOF_TIME_T 8 | |
| # define SIZEOF_VOID_P 8 | |
| # define SIZEOF_UINTPTR_T 8 | |
| # define SIZEOF_PTHREAD_T 8 | |
| #else | |
| # ifdef __ppc__ | |
| # define SIZEOF__BOOL 4 | |
| # else | |
| # define SIZEOF__BOOL 1 | |
| # endif | |
| # define SIZEOF_LONG 4 | |
| # define SIZEOF_PTHREAD_T 4 | |
| # define SIZEOF_SIZE_T 4 | |
| # define SIZEOF_TIME_T 4 | |
| # define SIZEOF_VOID_P 4 | |
| # define SIZEOF_UINTPTR_T 4 | |
| # define SIZEOF_PTHREAD_T 4 | |
| #endif | |
| // macOS 10.4 (the first release to support 64-bit code | |
| // at all) only supports 64-bit in the UNIX layer. | |
| // Therefore suppress the toolbox-glue in 64-bit mode. | |
| // | |
| // In 64-bit mode setpgrp always has no arguments, in 32-bit | |
| // mode that depends on the compilation environment | |
| #if defined(__LP64__) | |
| # undef SETPGRP_HAVE_ARG | |
| #endif | |
| #ifdef __BIG_ENDIAN__ | |
| # define WORDS_BIGENDIAN 1 | |
| # define DOUBLE_IS_BIG_ENDIAN_IEEE754 | |
| #else | |
| # define DOUBLE_IS_LITTLE_ENDIAN_IEEE754 | |
| #endif | |
| #if defined(__i386__) || defined(__x86_64__) | |
| # define HAVE_GCC_ASM_FOR_X87 | |
| # define ALIGNOF_MAX_ALIGN_T 16 | |
| # define HAVE_GCC_ASM_FOR_X64 1 | |
| # define SIZEOF_LONG_DOUBLE 16 | |
| #else | |
| # define ALIGNOF_MAX_ALIGN_T 8 | |
| # define SIZEOF_LONG_DOUBLE 8 | |
| #endif | |
| #endif // __APPLE__ | |
| #endif // !PY_MACCONFIG_H |