| From 28f6bb18cdea297164763db94e2366ca4857c9c7 Mon Sep 17 00:00:00 2001 |
| From: Lennart Poettering <lennart@poettering.net> |
| Date: Fri, 11 Jul 2014 15:56:16 +0200 |
| Subject: [PATCH 1/2] always check for __BYTE_ORDER == __BIG_ENDIAN when |
| checking for endianess |
| |
| Let's always stick to glibc's way to determine byte order, and not mix |
| autoconf-specific checks with gcc checks. |
| --- |
| src/shared/architecture.h | 12 ++++++------ |
| src/shared/gpt.h | 4 ++-- |
| src/shared/time-dst.c | 6 +++--- |
| 3 files changed, 11 insertions(+), 11 deletions(-) |
| |
| diff --git a/src/shared/architecture.h b/src/shared/architecture.h |
| index 4821d5d..58e97e5 100644 |
| --- a/src/shared/architecture.h |
| +++ b/src/shared/architecture.h |
| @@ -80,7 +80,7 @@ Architecture uname_architecture(void); |
| # define native_architecture() ARCHITECTURE_X86 |
| # define LIB_ARCH_TUPLE "i386-linux-gnu" |
| #elif defined(__powerpc64__) |
| -# if defined(WORDS_BIGENDIAN) |
| +# if __BYTE_ORDER == __BIG_ENDIAN |
| # define native_architecture() ARCHITECTURE_PPC64 |
| # define LIB_ARCH_TUPLE "ppc64-linux-gnu" |
| # else |
| @@ -88,7 +88,7 @@ Architecture uname_architecture(void); |
| # error "Missing LIB_ARCH_TUPLE for PPC64LE" |
| # endif |
| #elif defined(__powerpc__) |
| -# if defined(WORDS_BIGENDIAN) |
| +# if __BYTE_ORDER == __BIG_ENDIAN |
| # define native_architecture() ARCHITECTURE_PPC |
| # define LIB_ARCH_TUPLE "powerpc-linux-gnu" |
| # else |
| @@ -117,7 +117,7 @@ Architecture uname_architecture(void); |
| # define native_architecture() ARCHITECTURE_SPARC |
| # define LIB_ARCH_TUPLE "sparc-linux-gnu" |
| #elif defined(__mips64__) |
| -# if defined(WORDS_BIGENDIAN) |
| +# if __BYTE_ORDER == __BIG_ENDIAN |
| # define native_architecture() ARCHITECTURE_MIPS64 |
| # error "Missing LIB_ARCH_TUPLE for MIPS64" |
| # else |
| @@ -125,7 +125,7 @@ Architecture uname_architecture(void); |
| # error "Missing LIB_ARCH_TUPLE for MIPS64_LE" |
| # endif |
| #elif defined(__mips__) |
| -# if defined(WORDS_BIGENDIAN) |
| +# if __BYTE_ORDER == __BIG_ENDIAN |
| # define native_architecture() ARCHITECTURE_MIPS |
| # define LIB_ARCH_TUPLE "mips-linux-gnu" |
| # else |
| @@ -136,7 +136,7 @@ Architecture uname_architecture(void); |
| # define native_architecture() ARCHITECTURE_ALPHA |
| # define LIB_ARCH_TUPLE "alpha-linux-gnu" |
| #elif defined(__aarch64__) |
| -# if defined(WORDS_BIGENDIAN) |
| +# if __BYTE_ORDER == __BIG_ENDIAN |
| # define native_architecture() ARCHITECTURE_ARM64_BE |
| # define LIB_ARCH_TUPLE "aarch64_be-linux-gnu" |
| # else |
| @@ -144,7 +144,7 @@ Architecture uname_architecture(void); |
| # define LIB_ARCH_TUPLE "aarch64-linux-gnu" |
| # endif |
| #elif defined(__arm__) |
| -# if defined(WORDS_BIGENDIAN) |
| +# if __BYTE_ORDER == __BIG_ENDIAN |
| # define native_architecture() ARCHITECTURE_ARM_BE |
| # if defined(__ARM_EABI__) |
| # if defined(__ARM_PCS_VFP) |
| diff --git a/src/shared/gpt.h b/src/shared/gpt.h |
| index 64090e0..278940b 100644 |
| --- a/src/shared/gpt.h |
| +++ b/src/shared/gpt.h |
| @@ -42,10 +42,10 @@ |
| # define GPT_ROOT_NATIVE GPT_ROOT_X86 |
| #endif |
| |
| -#if defined(__aarch64__) && !defined(WORDS_BIGENDIAN) |
| +#if defined(__aarch64__) && (__BYTE_ORDER != __BIG_ENDIAN) |
| # define GPT_ROOT_NATIVE GPT_ROOT_ARM_64 |
| # define GPT_ROOT_SECONDARY GPT_ROOT_ARM |
| -#elif defined(__arm__) && !defined(WORDS_BIGENDIAN) |
| +#elif defined(__arm__) && (__BYTE_ORDER != __BIG_ENDIAN) |
| # define GPT_ROOT_NATIVE GPT_ROOT_ARM |
| #endif |
| |
| diff --git a/src/shared/time-dst.c b/src/shared/time-dst.c |
| index ceca2fa..6195b11 100644 |
| --- a/src/shared/time-dst.c |
| +++ b/src/shared/time-dst.c |
| @@ -207,8 +207,8 @@ read_again: |
| if (type_idxs[i] >= num_types) |
| return -EINVAL; |
| |
| - if (BYTE_ORDER == BIG_ENDIAN ? sizeof(time_t) == 8 && trans_width == 4 |
| - : sizeof(time_t) == 4 || trans_width == 4) { |
| + if (__BYTE_ORDER == __BIG_ENDIAN ? sizeof(time_t) == 8 && trans_width == 4 |
| + : sizeof(time_t) == 4 || trans_width == 4) { |
| /* Decode the transition times, stored as 4-byte integers in |
| network (big-endian) byte order. We work from the end of |
| the array so as not to clobber the next element to be |
| @@ -216,7 +216,7 @@ read_again: |
| i = num_transitions; |
| while (i-- > 0) |
| transitions[i] = decode((char *)transitions + i * 4); |
| - } else if (BYTE_ORDER != BIG_ENDIAN && sizeof(time_t) == 8) { |
| + } else if (__BYTE_ORDER != __BIG_ENDIAN && sizeof(time_t) == 8) { |
| /* Decode the transition times, stored as 8-byte integers in |
| network (big-endian) byte order. */ |
| for (i = 0; i < num_transitions; ++i) |
| -- |
| 1.8.5.5 |
| |