8 #if defined HAVE_STDINT_H
12 #if defined HAVE_INTTYPES_H
18 #define CHECK(x) (void)(!(x) ? (abort(), 1) : 0)
20 /* Define macros so that compilers other than gcc can run the tests. */
23 #define __UNUSED__ __attribute__((__unused__))
24 #define __STDCALL__ __attribute__((stdcall))
25 #define __THISCALL__ __attribute__((thiscall))
26 #define __FASTCALL__ __attribute__((fastcall))
29 #define __STDCALL__ __stdcall
30 #define __THISCALL__ __thiscall
31 #define __FASTCALL__ __fastcall
35 #define ABI_NUM FFI_DEFAULT_ABI
39 /* Prefer MAP_ANON(YMOUS) to /dev/zero, since we don't need to keep a
42 # undef HAVE_MMAP_DEV_ZERO
44 # include <sys/mman.h>
46 # define MAP_FAILED -1
48 # if !defined (MAP_ANONYMOUS) && defined (MAP_ANON)
49 # define MAP_ANONYMOUS MAP_ANON
55 #ifdef HAVE_MMAP_DEV_ZERO
57 # include <sys/mman.h>
59 # define MAP_FAILED -1
74 /* Tru64 UNIX kludge. */
75 #if defined(__alpha__) && defined(__osf__)
76 /* Tru64 UNIX V4.0 doesn't support %lld/%lld, but long is 64-bit. */
88 /* PA HP-UX kludge. */
89 #if defined(__hppa__) && defined(__hpux__) && !defined(PRIuPTR)
95 /* IRIX 6.5 <inttypes.h> provides all definitions, but only for C99
99 #if (_MIPS_SZLONG == 32)
103 /* This doesn't match <inttypes.h>, which always has "lld" here, but the
104 arguments are uint64_t, int64_t, which are unsigned long, long for
105 64-bit in <sgidefs.h>. */
106 #if (_MIPS_SZLONG == 64)
110 /* This doesn't match <inttypes.h>, which has "u" here, but the arguments
111 are uintptr_t, which is always unsigned long. */
115 /* Solaris < 10 kludge. */
116 #if defined(__sun__) && defined(__svr4__) && !defined(PRIuPTR)
117 #if defined(__arch64__) || defined (__x86_64__)
129 #define PRIu64 "I64u"
130 #define PRId64 "I64d"