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

Re: [PATCH v2 1/6] Revert "bswap.h: add support for built-in bswap functions"

From
Junio C Hamano <gitster@pobox.com>
Date
Jun 12, 2025, 20:04 UTC
Message-ID
<xmqq34c4enge.fsf@gitster.g>
In-Reply-To
<20250611221444.1567638-2-sebastian@breakpoint.cc>
Sebastian Andrzej Siewior <sebastian@breakpoint.cc> writes:
Show 6 quoted lines
> Since 6547d1c9 (bswap.h: add support for built-in bswap
> functions, 2025-04-23) tweaked the way the bswap32/64 macros are
> defined, on platforms with __builtin_bswap32/64 supported, the
> bswap32/64 macros are defined even on big endian platforms.
>
> However this file assumes that bswap31/64 are defined ONLY on

31/64 -> 32/64? Just sanity checking the typofix I plan to make locally while applying this patch.

Show 36 quoted lines
> little endian machines and uses that assumption to redefine
> ntohl/ntohll macros. The said commit broke t4014-format-patch.sh test,
> among many others on s390x.
>
> Revert the commit.
>
> Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
> ---
>  compat/bswap.h | 14 +-------------
>  1 file changed, 1 insertion(+), 13 deletions(-)
>
> diff --git a/compat/bswap.h b/compat/bswap.h
> index 9e0f98e00b93a..b34054f2bd728 100644
> --- a/compat/bswap.h
> +++ b/compat/bswap.h
> @@ -35,19 +35,7 @@ static inline uint64_t default_bswap64(uint64_t val)
>  #undef bswap32
>  #undef bswap64
>  
> -/**
> - * __has_builtin is available since Clang 10 and GCC 10.
> - * Below is a fallback for older compilers.
> - */
> -#ifndef __has_builtin
> -	#define __has_builtin(x) 0
> -#endif
> -
> -#if __has_builtin(__builtin_bswap32) && __has_builtin(__builtin_bswap64)
> -#define bswap32(x) __builtin_bswap32((x))
> -#define bswap64(x) __builtin_bswap64((x))
> -
> -#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
> +#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
>  
>  #define bswap32 git_bswap32
>  static inline uint32_t git_bswap32(uint32_t x)
Previous: Sebastian Andrzej SiewiorNext: Sebastian Andrzej Siewior
Message 7 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.