diff options
-rw-r--r-- | byterun/config.h | 8 | ||||
-rwxr-xr-x | configure | 13 |
2 files changed, 17 insertions, 4 deletions
diff --git a/byterun/config.h b/byterun/config.h index 02bdd53be..b8d457818 100644 --- a/byterun/config.h +++ b/byterun/config.h @@ -47,14 +47,14 @@ typedef unsigned short uint32; #if defined(ARCH_INT64_TYPE) typedef ARCH_INT64_TYPE int64; typedef ARCH_UINT64_TYPE uint64; -#elif SIZEOF_LONG == 8 -typedef long int64; -typedef unsigned long uint64; -#define ARCH_INT64_PRINTF_FORMAT "l" #elif SIZEOF_LONGLONG == 8 typedef long long int64; typedef unsigned long long uint64; #define ARCH_INT64_PRINTF_FORMAT "ll" +#elif SIZEOF_LONG == 8 +typedef long int64; +typedef unsigned long uint64; +#define ARCH_INT64_PRINTF_FORMAT "l" #else #error "No 64-bit integer type available" #endif @@ -529,6 +529,19 @@ echo "#define SIZEOF_PTR $3" >> m.h echo "#define SIZEOF_SHORT $4" >> m.h echo "#define SIZEOF_LONGLONG $5" >> m.h +# Temporary fix: some OCaml programs, e.g. Coq, assume that +# ARCH_INT64_TYPE is defined in config/m.h. Put a definition +# there, even if it duplicates the logic present in config.h +if test $5 = 8; then + echo '#define ARCH_INT64_TYPE long long' >> m.h + echo '#define ARCH_UINT64_TYPE unsigned long long' >> m.h + echo '#define ARCH_INT64_PRINTF_FORMAT "ll"' >> m.h +else + echo '#define ARCH_INT64_TYPE long' >> m.h + echo '#define ARCH_UINT64_TYPE unsigned long' >> m.h + echo '#define ARCH_INT64_PRINTF_FORMAT "l"' >> m.h +fi + # Determine endianness sh ./runtest endian.c |