1#ifndef PYMACCONFIG_H 2#define PYMACCONFIG_H 3 /* 4 * This file moves some of the autoconf magic to compile-time 5 * when building on MacOSX. This is needed for building 4-way 6 * universal binaries and for 64-bit universal binaries because 7 * the values redefined below aren't configure-time constant but 8 * only compile-time constant in these scenarios. 9 */ 10 11#if defined(__APPLE__) 12 13# undef SIZEOF_LONG 14# undef SIZEOF_PTHREAD_T 15# undef SIZEOF_SIZE_T 16# undef SIZEOF_TIME_T 17# undef SIZEOF_VOID_P 18# undef SIZEOF__BOOL 19# undef SIZEOF_UINTPTR_T 20# undef SIZEOF_PTHREAD_T 21# undef WORDS_BIGENDIAN 22# undef DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 23# undef DOUBLE_IS_BIG_ENDIAN_IEEE754 24# undef DOUBLE_IS_LITTLE_ENDIAN_IEEE754 25# undef HAVE_GCC_ASM_FOR_X87 26 27# undef VA_LIST_IS_ARRAY 28# if defined(__LP64__) && defined(__x86_64__) 29# define VA_LIST_IS_ARRAY 1 30# endif 31 32# undef HAVE_LARGEFILE_SUPPORT 33# ifndef __LP64__ 34# define HAVE_LARGEFILE_SUPPORT 1 35# endif 36 37# undef SIZEOF_LONG 38# ifdef __LP64__ 39# define SIZEOF__BOOL 1 40# define SIZEOF__BOOL 1 41# define SIZEOF_LONG 8 42# define SIZEOF_PTHREAD_T 8 43# define SIZEOF_SIZE_T 8 44# define SIZEOF_TIME_T 8 45# define SIZEOF_VOID_P 8 46# define SIZEOF_UINTPTR_T 8 47# define SIZEOF_PTHREAD_T 8 48# else 49# ifdef __ppc__ 50# define SIZEOF__BOOL 4 51# else 52# define SIZEOF__BOOL 1 53# endif 54# define SIZEOF_LONG 4 55# define SIZEOF_PTHREAD_T 4 56# define SIZEOF_SIZE_T 4 57# define SIZEOF_TIME_T 4 58# define SIZEOF_VOID_P 4 59# define SIZEOF_UINTPTR_T 4 60# define SIZEOF_PTHREAD_T 4 61# endif 62 63# if defined(__LP64__) 64 /* MacOSX 10.4 (the first release to support 64-bit code 65 * at all) only supports 64-bit in the UNIX layer. 66 * Therefore suppress the toolbox-glue in 64-bit mode. 67 */ 68 69 /* In 64-bit mode setpgrp always has no arguments, in 32-bit 70 * mode that depends on the compilation environment 71 */ 72# undef SETPGRP_HAVE_ARG 73 74# endif 75 76#ifdef __BIG_ENDIAN__ 77#define WORDS_BIGENDIAN 1 78#define DOUBLE_IS_BIG_ENDIAN_IEEE754 79#else 80#define DOUBLE_IS_LITTLE_ENDIAN_IEEE754 81#endif /* __BIG_ENDIAN */ 82 83#ifdef __i386__ 84# define HAVE_GCC_ASM_FOR_X87 85#endif 86 87 /* 88 * The definition in pyconfig.h is only valid on the OS release 89 * where configure ran on and not necessarily for all systems where 90 * the executable can be used on. 91 * 92 * Specifically: OSX 10.4 has limited supported for '%zd', while 93 * 10.5 has full support for '%zd'. A binary built on 10.5 won't 94 * work properly on 10.4 unless we suppress the definition 95 * of PY_FORMAT_SIZE_T 96 */ 97#undef PY_FORMAT_SIZE_T 98 99 100#endif /* defined(_APPLE__) */ 101 102#endif /* PYMACCONFIG_H */ 103