From 759ac0f0564104d5028acd47c3e9fdb858c96d1d Mon Sep 17 00:00:00 2001 From: Akshay Adiga Date: Tue, 12 Sep 2017 10:53:13 +0530 Subject: [PATCH] endian: Add Glibc like endianess check An application built using glibc would expect __BYTE_ORDER to tell if it should be compiled for BIG_ENDIAN or LITTLE_ENDIAN, whereas ccan uses HAVE_LITTLE_ENDIAN and HAVE_BIG_ENDIAN for the same purpose. Hence setting __BYTE_ORDER based on what CCAN provides will no longer break the applications which check endianness the glibc way. Signed-off-by: Akshay Adiga Signed-off-by: Rusty Russell --- ccan/endian/endian.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/ccan/endian/endian.h b/ccan/endian/endian.h index 0c99cc80..6732e8aa 100644 --- a/ccan/endian/endian.h +++ b/ccan/endian/endian.h @@ -103,13 +103,22 @@ static inline uint64_t bswap_64(uint64_t val) } #endif +/* Needed for Glibc like endiness check */ +#define __LITTLE_ENDIAN 1234 +#define __BIG_ENDIAN 4321 + /* Sanity check the defines. We don't handle weird endianness. */ #if !HAVE_LITTLE_ENDIAN && !HAVE_BIG_ENDIAN #error "Unknown endian" #elif HAVE_LITTLE_ENDIAN && HAVE_BIG_ENDIAN #error "Can't compile for both big and little endian." +#elif HAVE_LITTLE_ENDIAN +#define __BYTE_ORDER __LITTLE_ENDIAN +#elif HAVE_BIG_ENDIAN +#define __BYTE_ORDER __BIG_ENDIAN #endif + #ifdef __CHECKER__ /* sparse needs forcing to remove bitwise attribute from ccan/short_types */ #define ENDIAN_CAST __attribute__((force)) -- 2.39.2