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

Re: [PATCH v2 3/6] bswap.h: Define GIT_LITTLE_ENDIAN on msvc as little endian

From
Junio C Hamano <gitster@pobox.com>
Date
Jun 12, 2025, 20:11 UTC
Message-ID
<xmqqqzzod8k0.fsf@gitster.g>
In-Reply-To
<20250611221444.1567638-4-sebastian@breakpoint.cc>
Sebastian Andrzej Siewior <sebastian@breakpoint.cc> writes:
> The Microsoft Visual C++ (MSVC) compiler (as of Visual Studio 2022
> version 17.13.6) does not define __BYTE_ORDER__ and its C-library does
> not define __BYTE_ORDER. The compiler is supported only an arm64 and x86
> which are all little endian.

"an arm" -> "on arm"? Just sanity checking before making local typofix while queueing.

Show 31 quoted lines
> Define GIT_BYTE_ORDER on msvc as little endian to avoid further checks.
>
> Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
> ---
>  compat/bswap.h | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/compat/bswap.h b/compat/bswap.h
> index 0a457542dd76a..fd604d9f7b74b 100644
> --- a/compat/bswap.h
> +++ b/compat/bswap.h
> @@ -81,6 +81,10 @@ static inline uint64_t git_bswap64(uint64_t x)
>  #define bswap32(x) _byteswap_ulong(x)
>  #define bswap64(x) _byteswap_uint64(x)
>  
> +#define GIT_LITTLE_ENDIAN 1234
> +#define GIT_BIG_ENDIAN 4321
> +#define GIT_BYTE_ORDER GIT_LITTLE_ENDIAN
> +
>  #endif
>  
>  #if defined(bswap32)
> @@ -122,7 +126,7 @@ static inline uint64_t git_bswap64(uint64_t x)
>  # define GIT_LITTLE_ENDIAN __ORDER_LITTLE_ENDIAN__
>  # define GIT_BIG_ENDIAN __ORDER_BIG_ENDIAN__
>  
> -#else
> +#elif !defined(GIT_BYTE_ORDER)
>  
>  # define GIT_BIG_ENDIAN 4321
>  # define GIT_LITTLE_ENDIAN 1234
Previous: Sebastian Andrzej SiewiorNext: Sebastian Andrzej Siewior
Message 9 of 20 in “bswap.h: Rework ntohl handling”
  1. 0/6 bswap.h: Rework ntohl handlingSebastian Andrzej Siewior, Jun 11, 2025
  2. 2/6 bswap.h: Add support for __BYTE_ORDER__Sebastian Andrzej Siewior, Jun 11, 2025
  3. brian m. carlsonJun 12, 2025
  4. Collin FunkJun 12, 2025
  5. Junio C HamanoJun 12, 2025
  6. 1/6 Revert "bswap.h: add support for built-in bswap functions"Sebastian Andrzej Siewior, Jun 11, 2025
  7. Junio C HamanoJun 12, 2025
  8. 3/6 bswap.h: Define GIT_LITTLE_ENDIAN on msvc as little endianSebastian Andrzej Siewior, Jun 11, 2025
  9. Junio C HamanoJun 12, 2025
  10. 5/6 bswap.h: Remove optimized x86 version of bswap32/64Sebastian Andrzej Siewior, Jun 11, 2025
  11. Kristoffer HaugsbakkJun 26, 2025
  12. Sebastian Andrzej SiewiorJul 15, 2025
  13. 6/6 bswap.h: Provide a built-in based version of bswap32/64 if possibleSebastian Andrzej Siewior, Jun 11, 2025
  14. 5/6 bswap: Remove optimized x86 version of bswap32/64Sebastian Andrzej Siewior, Jun 11, 2025
  15. 4/6 bswap.h: Always overwrite ntohl/ ntohll macrosSebastian Andrzej Siewior, Jun 11, 2025
  16. brian m. carlsonJun 12, 2025
  17. Junio C HamanoJun 12, 2025
  18. Junio C HamanoJun 12, 2025
  19. Junio C HamanoJul 7, 2025
  20. Sebastian Andrzej SiewiorJul 9, 2025

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.