git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] Detect endianness on more platforms that don't use BYTE_ORDER

From
Junio C Hamano <gitster@pobox.com>
Date
May 2, 2014, 19:43 UTC
Message-ID
<xmqq38gsarvf.fsf@gitster.dls.corp.google.com>
In-Reply-To
<xmqq7g64asae.fsf@gitster.dls.corp.google.com>
Junio C Hamano <gitster@pobox.com> writes:
Show 11 quoted lines
> Charles Bailey <cbailey32@bloomberg.net> writes:
>
>> I claim that any
>> platform which provides both but with differing senses is somewhat
>> broken so I cannot see the precedence mattering much.
>
> I agree with that, and that is the reason why we shouldn't change
> the order all of a sudden.  If it shouldn't matter, then there is
> only downside of a possiblity to break such an insane set-up that
> has been happily working by accident, without helping anybody if we
> change it, no?

So,... I am inclined to queue this on top of your patch at least for now, before I go into incommunicado-mode to finish preparing -rc2.

-- >8 --
Subject: [PATCH] compat/bswap.h: restore preference __BIG_ENDIAN over BIG_ENDIAN

The previous commit swaps the order we check the macros defined by the compiler and the system headers from the original. Since the order of check should not matter (i.e. it is insane to define both __BIG_ENDIAN and friends and BIG_ENDIAN and friends and in a conflicting way), it is the most conservative thing to do not to change it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 compat/bswap.h | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/compat/bswap.h b/compat/bswap.h
index f08a9fe..c4293db 100644
--- a/compat/bswap.h
+++ b/compat/bswap.h
@@ -101,18 +101,18 @@ static inline uint64_t git_bswap64(uint64_t x)
 #undef ntohll
 #undef htonll
 
-#if defined(BYTE_ORDER) && defined(LITTLE_ENDIAN) && defined(BIG_ENDIAN)
-
-# define GIT_BYTE_ORDER BYTE_ORDER
-# define GIT_LITTLE_ENDIAN LITTLE_ENDIAN
-# define GIT_BIG_ENDIAN BIG_ENDIAN
-
-#elif defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) && defined(__BIG_ENDIAN)
+#if defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) && defined(__BIG_ENDIAN)
 
 # define GIT_BYTE_ORDER __BYTE_ORDER
 # define GIT_LITTLE_ENDIAN __LITTLE_ENDIAN
 # define GIT_BIG_ENDIAN __BIG_ENDIAN
 
+#elif defined(BYTE_ORDER) && defined(LITTLE_ENDIAN) && defined(BIG_ENDIAN)
+
+# define GIT_BYTE_ORDER BYTE_ORDER
+# define GIT_LITTLE_ENDIAN LITTLE_ENDIAN
+# define GIT_BIG_ENDIAN BIG_ENDIAN
+
 #else
 
 # define GIT_BIG_ENDIAN 4321
-- 
2.0.0-rc1-355-gd6d6511
Previous: Junio C HamanoNext: Charles Bailey
Message 10 of 11 in “Add extra logic required to detect endianness on Solaris”
  1. Add extra logic required to detect endianness on SolarisCharles Bailey, May 1, 2014
  2. Junio C HamanoMay 1, 2014
  3. Junio C HamanoMay 1, 2014
  4. Junio C HamanoMay 1, 2014
  5. Charles BaileyMay 2, 2014
  6. Detect endianness on more platforms that don't use BYTE_ORDERCharles Bailey, May 2, 2014
  7. Junio C HamanoMay 2, 2014
  8. Charles BaileyMay 2, 2014
  9. Junio C HamanoMay 2, 2014
  10. Junio C HamanoMay 2, 2014
  11. Charles BaileyMay 2, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.