Include correct userspace header for endian information Skip linuxism to fix build on LP64 archs that aren't amd64 Index: src/byteorder.h --- src/byteorder.h.orig +++ src/byteorder.h @@ -36,7 +36,7 @@ #include #if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__APPLE__) -#include +#include #if BYTE_ORDER == BIG_ENDIAN #define BYTE_ORDER_BIG_ENDIAN #endif // BYTE_ORDER == BIG_ENDIAN @@ -55,9 +55,11 @@ typedef uint64_t subblock; #define SWAPPED(x) (x) #elif defined( __x86_64__) #define SWAPPED(x) ({register uint64_t __out, __in = (x); __asm__("bswap %q0" : "=r"(__out) : "0"(__in)); __out;}) -#else +#elif defined(LINUX) #include #define SWAPPED(x) bswap_64(x) +#else +#define SWAPPED(x) htobe64(x) #endif // defined(BYTE_ORDER_BIG_ENDIAN) #else #define BLOCKSIZE 4