mirror of https://github.com/python/cpython
92 lines
2.4 KiB
C
92 lines
2.4 KiB
C
// 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_ARM_MIXED_ENDIAN_IEEE754
|
|
#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
|