diff options
author | Jonathan Gray <jsg@jsg.id.au> | 2016-11-26 04:18:00 (GMT) |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2016-12-03 02:32:38 (GMT) |
commit | fd184b9c8003811d797dfc64af6375ecb43cc79d (patch) | |
tree | 18ac691ecb3f3d54be9dc2b524c7737b0af5e8a6 | |
parent | 7e0b87c91ab252515e419b7718606316b0319de8 (diff) | |
download | u-boot-fd184b9c8003811d797dfc64af6375ecb43cc79d.tar.xz |
compiler.h: use u-boot endian macros on OpenBSD
When building u-boot on sparc64 and powerpc hosts it became clear that
u-boot expects endian conversion defines to be macros:
lib/crc32.c:87: error: braced-group within expression allowed only inside a function
For OpenBSD switch from using system definitions equivalent to the u-boot ones
and define glibc __BYTE_ORDER __BIG_ENDIAN __LITTLE_ENDIAN names, as at least
some parts of the non-cross build assumes those names are present (ie crc32.c).
Signed-off-by: Jonathan Gray <jsg@jsg.id.au>
-rw-r--r-- | include/compiler.h | 18 |
1 files changed, 4 insertions, 14 deletions
diff --git a/include/compiler.h b/include/compiler.h index 65b826e..a43fb6a 100644 --- a/include/compiler.h +++ b/include/compiler.h @@ -52,6 +52,9 @@ typedef unsigned long ulong; # include <sys/endian.h> /* htole32 and friends */ #elif defined(__OpenBSD__) # include <endian.h> +# define __BYTE_ORDER BYTE_ORDER +# define __LITTLE_ENDIAN LITTLE_ENDIAN +# define __BIG_ENDIAN BIG_ENDIAN #endif #include <time.h> @@ -84,20 +87,7 @@ typedef unsigned int uint; # define uswap_64(x) _uswap_64(x, ) #endif -#if defined(__OpenBSD__) -#define cpu_to_le16(x) htole16(x) -#define cpu_to_le32(x) htole32(x) -#define cpu_to_le64(x) htole64(x) -#define le16_to_cpu(x) letoh16(x) -#define le32_to_cpu(x) letoh32(x) -#define le64_to_cpu(x) letoh64(x) -#define cpu_to_be16(x) htobe16(x) -#define cpu_to_be32(x) htobe32(x) -#define cpu_to_be64(x) htobe64(x) -#define be16_to_cpu(x) betoh16(x) -#define be32_to_cpu(x) betoh32(x) -#define be64_to_cpu(x) betoh64(x) -#elif __BYTE_ORDER == __LITTLE_ENDIAN +#if __BYTE_ORDER == __LITTLE_ENDIAN # define cpu_to_le16(x) (x) # define cpu_to_le32(x) (x) # define cpu_to_le64(x) (x) |