From: Paul Eggert Date: Sat, 14 Mar 2026 22:15:50 +0000 (-0700) Subject: stdbit-h: avoid namespace pollution X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=154822a7dee7d5fcfe8ca9041bacdfd6f09f4a67;p=thirdparty%2Fgnulib.git stdbit-h: avoid namespace pollution * lib/stdbit.in.h (_GL_STDBIT_HAS_BUILTIN_BSWAP16) (_GL_STDBIT_HAS_BUILTIN_BSWAP32, _GL_STDBIT_HAS_BUILTIN_BSWAP64) (_GL_STDBIT_BSWAP16, _GL_STDBIT_BSWAP32, _GL_STDBIT_BSWAP64): New macros. All uses of bswap_16, bswap_32, bswap_64 changed. --- diff --git a/ChangeLog b/ChangeLog index c716be02b3..916981ff2f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2026-03-14 Paul Eggert + stdbit-h: avoid namespace pollution + * lib/stdbit.in.h (_GL_STDBIT_HAS_BUILTIN_BSWAP16) + (_GL_STDBIT_HAS_BUILTIN_BSWAP32, _GL_STDBIT_HAS_BUILTIN_BSWAP64) + (_GL_STDBIT_BSWAP16, _GL_STDBIT_BSWAP32, _GL_STDBIT_BSWAP64): + New macros. All uses of bswap_16, bswap_32, bswap_64 changed. + stdbit-h: avoid namespace pollution * lib/stdbit.in.h (_GL_STDBIT_MEMCPY): New macro. All uses of memcpy changed. diff --git a/lib/stdbit.in.h b/lib/stdbit.in.h index f8f79c825c..562796b8e4 100644 --- a/lib/stdbit.in.h +++ b/lib/stdbit.in.h @@ -47,8 +47,45 @@ #if @GNULIB_STDC_LOAD8_ALIGNED@ || @GNULIB_STDC_STORE8_ALIGNED@ -/* Get bswap_16, bswap_32, bswap_64. */ -# include +/* Get bswap_16, bswap_32, bswap_64, but keep namespace clean on GNU. */ +# if defined __GNUC__ && 4 < __GNUC__ + (8 <= __GNUC_MINOR__) +# define _GL_STDBIT_HAS_BUILTIN_BSWAP16 1 +# elif defined __has_builtin +# if __has_builtin (__builtin_bswap16) +# define _GL_STDBIT_HAS_BUILTIN_BSWAP16 1 +# endif +# endif +# if defined __GNUC__ && 4 < __GNUC__ + (3 <= __GNUC_MINOR__) +# define _GL_STDBIT_HAS_BUILTIN_BSWAP32 1 +# define _GL_STDBIT_HAS_BUILTIN_BSWAP64 1 +# elif defined __has_builtin +# if __has_builtin (__builtin_bswap32) +# define _GL_STDBIT_HAS_BUILTIN_BSWAP32 1 +# endif +# if __has_builtin (__builtin_bswap64) +# define _GL_STDBIT_HAS_BUILTIN_BSWAP64 1 +# endif +# endif +# if ! (defined _GL_STDBIT_HAS_BUILTIN_BSWAP16 \ + && defined _GL_STDBIT_HAS_BUILTIN_BSWAP32 \ + && defined _GL_STDBIT_HAS_BUILTIN_BSWAP64) +# include +# endif +# ifdef _GL_STDBIT_HAS_BUILTIN_BSWAP16 +# define _GL_STDBIT_BSWAP16(x) __builtin_bswap16 (x) +# else +# define _GL_STDBIT_BSWAP16(x) bswap_16 (x) +# endif +# ifdef _GL_STDBIT_HAS_BUILTIN_BSWAP32 +# define _GL_STDBIT_BSWAP32(x) __builtin_bswap32 (x) +# else +# define _GL_STDBIT_BSWAP32(x) bswap_32 (x) +# endif +# ifdef _GL_STDBIT_HAS_BUILTIN_BSWAP64 +# define _GL_STDBIT_BSWAP64(x) __builtin_bswap64 (x) +# else +# define _GL_STDBIT_BSWAP64(x) bswap_64 (x) +# endif /* Get memcpy, but keep namespace clean on GNU. */ # ifdef __has_builtin @@ -1373,7 +1410,7 @@ stdc_load8_aligned_beu16 (const unsigned char ptr[2]) uint_least16_t value; _GL_STDBIT_MEMCPY (&value, _GL_STDBIT_ASSUME_ALIGNED (ptr, 2), 2); if (!_GL_STDBIT_BIGENDIAN) - value = bswap_16 (value); + value = _GL_STDBIT_BSWAP16 (value); return value; } else @@ -1388,7 +1425,7 @@ stdc_load8_aligned_beu32 (const unsigned char ptr[4]) uint_least32_t value; _GL_STDBIT_MEMCPY (&value, _GL_STDBIT_ASSUME_ALIGNED (ptr, 4), 4); if (!_GL_STDBIT_BIGENDIAN) - value = bswap_32 (value); + value = _GL_STDBIT_BSWAP32 (value); return value; } else @@ -1403,7 +1440,7 @@ stdc_load8_aligned_beu64 (const unsigned char ptr[8]) uint_least64_t value; _GL_STDBIT_MEMCPY (&value, _GL_STDBIT_ASSUME_ALIGNED (ptr, 8), 8); if (!_GL_STDBIT_BIGENDIAN) - value = bswap_64 (value); + value = _GL_STDBIT_BSWAP64 (value); return value; } else @@ -1424,7 +1461,7 @@ stdc_load8_aligned_leu16 (const unsigned char ptr[2]) uint_least16_t value; _GL_STDBIT_MEMCPY (&value, _GL_STDBIT_ASSUME_ALIGNED (ptr, 2), 2); if (_GL_STDBIT_BIGENDIAN) - value = bswap_16 (value); + value = _GL_STDBIT_BSWAP16 (value); return value; } else @@ -1439,7 +1476,7 @@ stdc_load8_aligned_leu32 (const unsigned char ptr[4]) uint_least32_t value; _GL_STDBIT_MEMCPY (&value, _GL_STDBIT_ASSUME_ALIGNED (ptr, 4), 4); if (_GL_STDBIT_BIGENDIAN) - value = bswap_32 (value); + value = _GL_STDBIT_BSWAP32 (value); return value; } else @@ -1454,7 +1491,7 @@ stdc_load8_aligned_leu64 (const unsigned char ptr[8]) uint_least64_t value; _GL_STDBIT_MEMCPY (&value, _GL_STDBIT_ASSUME_ALIGNED (ptr, 8), 8); if (_GL_STDBIT_BIGENDIAN) - value = bswap_64 (value); + value = _GL_STDBIT_BSWAP64 (value); return value; } else @@ -1650,7 +1687,7 @@ stdc_store8_aligned_beu16 (uint_least16_t value, unsigned char ptr[2]) if (_GL_STDBIT_OPTIMIZE_VIA_MEMCPY) { if (!_GL_STDBIT_BIGENDIAN) - value = bswap_16 (value); + value = _GL_STDBIT_BSWAP16 (value); _GL_STDBIT_MEMCPY (_GL_STDBIT_ASSUME_ALIGNED (ptr, 2), &value, 2); } else @@ -1663,7 +1700,7 @@ stdc_store8_aligned_beu32 (uint_least32_t value, unsigned char ptr[4]) if (_GL_STDBIT_OPTIMIZE_VIA_MEMCPY) { if (!_GL_STDBIT_BIGENDIAN) - value = bswap_32 (value); + value = _GL_STDBIT_BSWAP32 (value); _GL_STDBIT_MEMCPY (_GL_STDBIT_ASSUME_ALIGNED (ptr, 4), &value, 4); } else @@ -1676,7 +1713,7 @@ stdc_store8_aligned_beu64 (uint_least64_t value, unsigned char ptr[8]) if (_GL_STDBIT_OPTIMIZE_VIA_MEMCPY) { if (!_GL_STDBIT_BIGENDIAN) - value = bswap_64 (value); + value = _GL_STDBIT_BSWAP64 (value); _GL_STDBIT_MEMCPY (_GL_STDBIT_ASSUME_ALIGNED (ptr, 8), &value, 8); } else @@ -1695,7 +1732,7 @@ stdc_store8_aligned_leu16 (uint_least16_t value, unsigned char ptr[2]) if (_GL_STDBIT_OPTIMIZE_VIA_MEMCPY) { if (_GL_STDBIT_BIGENDIAN) - value = bswap_16 (value); + value = _GL_STDBIT_BSWAP16 (value); _GL_STDBIT_MEMCPY (_GL_STDBIT_ASSUME_ALIGNED (ptr, 2), &value, 2); } else @@ -1708,7 +1745,7 @@ stdc_store8_aligned_leu32 (uint_least32_t value, unsigned char ptr[4]) if (_GL_STDBIT_OPTIMIZE_VIA_MEMCPY) { if (_GL_STDBIT_BIGENDIAN) - value = bswap_32 (value); + value = _GL_STDBIT_BSWAP32 (value); _GL_STDBIT_MEMCPY (_GL_STDBIT_ASSUME_ALIGNED (ptr, 4), &value, 4); } else @@ -1721,7 +1758,7 @@ stdc_store8_aligned_leu64 (uint_least64_t value, unsigned char ptr[8]) if (_GL_STDBIT_OPTIMIZE_VIA_MEMCPY) { if (_GL_STDBIT_BIGENDIAN) - value = bswap_64 (value); + value = _GL_STDBIT_BSWAP64 (value); _GL_STDBIT_MEMCPY (_GL_STDBIT_ASSUME_ALIGNED (ptr, 8), &value, 8); } else