Use to determine endianness, instead of a complex and incorrect list of architectures. Index: src/physfs_lzmasdk.h --- src/physfs_lzmasdk.h.orig +++ src/physfs_lzmasdk.h @@ -486,6 +486,7 @@ EXTERN_C_END #define __CPU_ARCH_H /*#include "7zTypes.h"*/ +#include EXTERN_C_BEGIN @@ -537,33 +538,9 @@ MY_CPU_LE_UNALIGN means that CPU is LITTLE ENDIAN and #define MY_CPU_IA64_LE #endif -#if defined(MY_CPU_X86_OR_AMD64) \ - || defined(MY_CPU_ARM_LE) \ - || defined(MY_CPU_IA64_LE) \ - || defined(__LITTLE_ENDIAN__) \ - || defined(__ARMEL__) \ - || defined(__THUMBEL__) \ - || defined(__AARCH64EL__) \ - || defined(__MIPSEL__) \ - || defined(__MIPSEL) \ - || defined(_MIPSEL) \ - || defined(__BFIN__) \ - || (defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)) +#if BYTE_ORDER == LITTLE_ENDIAN #define MY_CPU_LE -#endif - -#if defined(__BIG_ENDIAN__) \ - || defined(__ARMEB__) \ - || defined(__THUMBEB__) \ - || defined(__AARCH64EB__) \ - || defined(__MIPSEB__) \ - || defined(__MIPSEB) \ - || defined(_MIPSEB) \ - || defined(__m68k__) \ - || defined(__s390__) \ - || defined(__s390x__) \ - || defined(__zarch__) \ - || (defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)) +#elif BYTE_ORDER == BIG_ENDIAN #define MY_CPU_BE #endif