]> git.ipfire.org Git - thirdparty/git.git/commitdiff
bswap.h: add support for __BYTE_ORDER__
authorSebastian Andrzej Siewior <sebastian@breakpoint.cc>
Wed, 11 Jun 2025 22:14:38 +0000 (00:14 +0200)
committerJunio C Hamano <gitster@pobox.com>
Thu, 12 Jun 2025 20:31:37 +0000 (13:31 -0700)
The __BYTE_ORDER__ define is provided by gcc (since ~v4.6), clang
(since ~v3.2) and icc (since ~16.0.3).  It is not provided by msvc
as of v19.43 / 17.13.6, which will be dealt with in later steps in
this series.

The __BYTE_ORDER and BYTE_ORDER macros are libc specific and are not
available on all supported platforms such as mingw.

Add support for the __BYTE_ORDER__ macro as a fallback.

Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
compat/bswap.h

index b34054f2bd72849e2844036c40f9e9dc6dc211aa..0a457542dd76ab0296f4ad8c838605064fade5fe 100644 (file)
@@ -116,6 +116,12 @@ static inline uint64_t git_bswap64(uint64_t x)
 # define GIT_LITTLE_ENDIAN LITTLE_ENDIAN
 # define GIT_BIG_ENDIAN BIG_ENDIAN
 
+#elif defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && defined(__ORDER_BIG_ENDIAN__)
+
+# define GIT_BYTE_ORDER __BYTE_ORDER__
+# define GIT_LITTLE_ENDIAN __ORDER_LITTLE_ENDIAN__
+# define GIT_BIG_ENDIAN __ORDER_BIG_ENDIAN__
+
 #else
 
 # define GIT_BIG_ENDIAN 4321