[PATCH 2/3] intl: Remove PRI_MACROS_BROKEN from loadmsgcat.c

Adhemerval Zanella Netto adhemerval.zanella@linaro.org
Wed May 13 14:17:10 GMT 2026



On 05/05/26 12:11, Avinal Kumar wrote:
> PRI_MACROS_BROKEN was a workaround for AIX 4, where inttypes.h
> did not properly define the PRI* format macros (PRId8, PRIu32, etc.).
> glibc has never supported AIX, the macro was always hardcoded to 0
> under _LIBC, making it a dead code.
> 
> GNU gettext removed this in commit 267f61670 ("Drop portability to
> AIX 4"), since no supported system has broken PRI macros post-C99.
> 
> Based on GNU gettext commit 267f61670.
> Original author: Bruno Haible <bruno@clisp.org>
> 
> Signed-off-by: Avinal Kumar <avinal.xlvii@gmail.com>

LGTM, thanks.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

> ---
>  intl/loadmsgcat.c | 172 ++++++++++++++++++++++------------------------
>  1 file changed, 84 insertions(+), 88 deletions(-)
> 
> diff --git a/intl/loadmsgcat.c b/intl/loadmsgcat.c
> index 2bb339f3b9..66974904ce 100644
> --- a/intl/loadmsgcat.c
> +++ b/intl/loadmsgcat.c
> @@ -77,361 +77,357 @@
>  # include "lock.h"
>  #endif
>  
> -#ifdef _LIBC
> -# define PRI_MACROS_BROKEN 0
> -#endif
> -
>  /* Provide fallback values for macros that ought to be defined in <inttypes.h>.
>     Note that our fallback values need not be literal strings, because we don't
>     use them with preprocessor string concatenation.  */
> -#if !defined PRId8 || PRI_MACROS_BROKEN
> +#if !defined PRId8
>  # undef PRId8
>  # define PRId8 "d"
>  #endif
> -#if !defined PRIi8 || PRI_MACROS_BROKEN
> +#if !defined PRIi8
>  # undef PRIi8
>  # define PRIi8 "i"
>  #endif
> -#if !defined PRIo8 || PRI_MACROS_BROKEN
> +#if !defined PRIo8
>  # undef PRIo8
>  # define PRIo8 "o"
>  #endif
> -#if !defined PRIu8 || PRI_MACROS_BROKEN
> +#if !defined PRIu8
>  # undef PRIu8
>  # define PRIu8 "u"
>  #endif
> -#if !defined PRIx8 || PRI_MACROS_BROKEN
> +#if !defined PRIx8
>  # undef PRIx8
>  # define PRIx8 "x"
>  #endif
> -#if !defined PRIX8 || PRI_MACROS_BROKEN
> +#if !defined PRIX8
>  # undef PRIX8
>  # define PRIX8 "X"
>  #endif
> -#if !defined PRId16 || PRI_MACROS_BROKEN
> +#if !defined PRId16
>  # undef PRId16
>  # define PRId16 "d"
>  #endif
> -#if !defined PRIi16 || PRI_MACROS_BROKEN
> +#if !defined PRIi16
>  # undef PRIi16
>  # define PRIi16 "i"
>  #endif
> -#if !defined PRIo16 || PRI_MACROS_BROKEN
> +#if !defined PRIo16
>  # undef PRIo16
>  # define PRIo16 "o"
>  #endif
> -#if !defined PRIu16 || PRI_MACROS_BROKEN
> +#if !defined PRIu16
>  # undef PRIu16
>  # define PRIu16 "u"
>  #endif
> -#if !defined PRIx16 || PRI_MACROS_BROKEN
> +#if !defined PRIx16
>  # undef PRIx16
>  # define PRIx16 "x"
>  #endif
> -#if !defined PRIX16 || PRI_MACROS_BROKEN
> +#if !defined PRIX16
>  # undef PRIX16
>  # define PRIX16 "X"
>  #endif
> -#if !defined PRId32 || PRI_MACROS_BROKEN
> +#if !defined PRId32
>  # undef PRId32
>  # define PRId32 "d"
>  #endif
> -#if !defined PRIi32 || PRI_MACROS_BROKEN
> +#if !defined PRIi32
>  # undef PRIi32
>  # define PRIi32 "i"
>  #endif
> -#if !defined PRIo32 || PRI_MACROS_BROKEN
> +#if !defined PRIo32
>  # undef PRIo32
>  # define PRIo32 "o"
>  #endif
> -#if !defined PRIu32 || PRI_MACROS_BROKEN
> +#if !defined PRIu32
>  # undef PRIu32
>  # define PRIu32 "u"
>  #endif
> -#if !defined PRIx32 || PRI_MACROS_BROKEN
> +#if !defined PRIx32
>  # undef PRIx32
>  # define PRIx32 "x"
>  #endif
> -#if !defined PRIX32 || PRI_MACROS_BROKEN
> +#if !defined PRIX32
>  # undef PRIX32
>  # define PRIX32 "X"
>  #endif
> -#if !defined PRId64 || PRI_MACROS_BROKEN
> +#if !defined PRId64
>  # undef PRId64
>  # define PRId64 (sizeof (long) == 8 ? "ld" : "lld")
>  #endif
> -#if !defined PRIi64 || PRI_MACROS_BROKEN
> +#if !defined PRIi64
>  # undef PRIi64
>  # define PRIi64 (sizeof (long) == 8 ? "li" : "lli")
>  #endif
> -#if !defined PRIo64 || PRI_MACROS_BROKEN
> +#if !defined PRIo64
>  # undef PRIo64
>  # define PRIo64 (sizeof (long) == 8 ? "lo" : "llo")
>  #endif
> -#if !defined PRIu64 || PRI_MACROS_BROKEN
> +#if !defined PRIu64
>  # undef PRIu64
>  # define PRIu64 (sizeof (long) == 8 ? "lu" : "llu")
>  #endif
> -#if !defined PRIx64 || PRI_MACROS_BROKEN
> +#if !defined PRIx64
>  # undef PRIx64
>  # define PRIx64 (sizeof (long) == 8 ? "lx" : "llx")
>  #endif
> -#if !defined PRIX64 || PRI_MACROS_BROKEN
> +#if !defined PRIX64
>  # undef PRIX64
>  # define PRIX64 (sizeof (long) == 8 ? "lX" : "llX")
>  #endif
> -#if !defined PRIdLEAST8 || PRI_MACROS_BROKEN
> +#if !defined PRIdLEAST8
>  # undef PRIdLEAST8
>  # define PRIdLEAST8 "d"
>  #endif
> -#if !defined PRIiLEAST8 || PRI_MACROS_BROKEN
> +#if !defined PRIiLEAST8
>  # undef PRIiLEAST8
>  # define PRIiLEAST8 "i"
>  #endif
> -#if !defined PRIoLEAST8 || PRI_MACROS_BROKEN
> +#if !defined PRIoLEAST8
>  # undef PRIoLEAST8
>  # define PRIoLEAST8 "o"
>  #endif
> -#if !defined PRIuLEAST8 || PRI_MACROS_BROKEN
> +#if !defined PRIuLEAST8
>  # undef PRIuLEAST8
>  # define PRIuLEAST8 "u"
>  #endif
> -#if !defined PRIxLEAST8 || PRI_MACROS_BROKEN
> +#if !defined PRIxLEAST8
>  # undef PRIxLEAST8
>  # define PRIxLEAST8 "x"
>  #endif
> -#if !defined PRIXLEAST8 || PRI_MACROS_BROKEN
> +#if !defined PRIXLEAST8
>  # undef PRIXLEAST8
>  # define PRIXLEAST8 "X"
>  #endif
> -#if !defined PRIdLEAST16 || PRI_MACROS_BROKEN
> +#if !defined PRIdLEAST16
>  # undef PRIdLEAST16
>  # define PRIdLEAST16 "d"
>  #endif
> -#if !defined PRIiLEAST16 || PRI_MACROS_BROKEN
> +#if !defined PRIiLEAST16
>  # undef PRIiLEAST16
>  # define PRIiLEAST16 "i"
>  #endif
> -#if !defined PRIoLEAST16 || PRI_MACROS_BROKEN
> +#if !defined PRIoLEAST16
>  # undef PRIoLEAST16
>  # define PRIoLEAST16 "o"
>  #endif
> -#if !defined PRIuLEAST16 || PRI_MACROS_BROKEN
> +#if !defined PRIuLEAST16
>  # undef PRIuLEAST16
>  # define PRIuLEAST16 "u"
>  #endif
> -#if !defined PRIxLEAST16 || PRI_MACROS_BROKEN
> +#if !defined PRIxLEAST16
>  # undef PRIxLEAST16
>  # define PRIxLEAST16 "x"
>  #endif
> -#if !defined PRIXLEAST16 || PRI_MACROS_BROKEN
> +#if !defined PRIXLEAST16
>  # undef PRIXLEAST16
>  # define PRIXLEAST16 "X"
>  #endif
> -#if !defined PRIdLEAST32 || PRI_MACROS_BROKEN
> +#if !defined PRIdLEAST32
>  # undef PRIdLEAST32
>  # define PRIdLEAST32 "d"
>  #endif
> -#if !defined PRIiLEAST32 || PRI_MACROS_BROKEN
> +#if !defined PRIiLEAST32
>  # undef PRIiLEAST32
>  # define PRIiLEAST32 "i"
>  #endif
> -#if !defined PRIoLEAST32 || PRI_MACROS_BROKEN
> +#if !defined PRIoLEAST32
>  # undef PRIoLEAST32
>  # define PRIoLEAST32 "o"
>  #endif
> -#if !defined PRIuLEAST32 || PRI_MACROS_BROKEN
> +#if !defined PRIuLEAST32
>  # undef PRIuLEAST32
>  # define PRIuLEAST32 "u"
>  #endif
> -#if !defined PRIxLEAST32 || PRI_MACROS_BROKEN
> +#if !defined PRIxLEAST32
>  # undef PRIxLEAST32
>  # define PRIxLEAST32 "x"
>  #endif
> -#if !defined PRIXLEAST32 || PRI_MACROS_BROKEN
> +#if !defined PRIXLEAST32
>  # undef PRIXLEAST32
>  # define PRIXLEAST32 "X"
>  #endif
> -#if !defined PRIdLEAST64 || PRI_MACROS_BROKEN
> +#if !defined PRIdLEAST64
>  # undef PRIdLEAST64
>  # define PRIdLEAST64 PRId64
>  #endif
> -#if !defined PRIiLEAST64 || PRI_MACROS_BROKEN
> +#if !defined PRIiLEAST64
>  # undef PRIiLEAST64
>  # define PRIiLEAST64 PRIi64
>  #endif
> -#if !defined PRIoLEAST64 || PRI_MACROS_BROKEN
> +#if !defined PRIoLEAST64
>  # undef PRIoLEAST64
>  # define PRIoLEAST64 PRIo64
>  #endif
> -#if !defined PRIuLEAST64 || PRI_MACROS_BROKEN
> +#if !defined PRIuLEAST64
>  # undef PRIuLEAST64
>  # define PRIuLEAST64 PRIu64
>  #endif
> -#if !defined PRIxLEAST64 || PRI_MACROS_BROKEN
> +#if !defined PRIxLEAST64
>  # undef PRIxLEAST64
>  # define PRIxLEAST64 PRIx64
>  #endif
> -#if !defined PRIXLEAST64 || PRI_MACROS_BROKEN
> +#if !defined PRIXLEAST64
>  # undef PRIXLEAST64
>  # define PRIXLEAST64 PRIX64
>  #endif
> -#if !defined PRIdFAST8 || PRI_MACROS_BROKEN
> +#if !defined PRIdFAST8
>  # undef PRIdFAST8
>  # define PRIdFAST8 "d"
>  #endif
> -#if !defined PRIiFAST8 || PRI_MACROS_BROKEN
> +#if !defined PRIiFAST8
>  # undef PRIiFAST8
>  # define PRIiFAST8 "i"
>  #endif
> -#if !defined PRIoFAST8 || PRI_MACROS_BROKEN
> +#if !defined PRIoFAST8
>  # undef PRIoFAST8
>  # define PRIoFAST8 "o"
>  #endif
> -#if !defined PRIuFAST8 || PRI_MACROS_BROKEN
> +#if !defined PRIuFAST8
>  # undef PRIuFAST8
>  # define PRIuFAST8 "u"
>  #endif
> -#if !defined PRIxFAST8 || PRI_MACROS_BROKEN
> +#if !defined PRIxFAST8
>  # undef PRIxFAST8
>  # define PRIxFAST8 "x"
>  #endif
> -#if !defined PRIXFAST8 || PRI_MACROS_BROKEN
> +#if !defined PRIXFAST8
>  # undef PRIXFAST8
>  # define PRIXFAST8 "X"
>  #endif
> -#if !defined PRIdFAST16 || PRI_MACROS_BROKEN
> +#if !defined PRIdFAST16
>  # undef PRIdFAST16
>  # define PRIdFAST16 "d"
>  #endif
> -#if !defined PRIiFAST16 || PRI_MACROS_BROKEN
> +#if !defined PRIiFAST16
>  # undef PRIiFAST16
>  # define PRIiFAST16 "i"
>  #endif
> -#if !defined PRIoFAST16 || PRI_MACROS_BROKEN
> +#if !defined PRIoFAST16
>  # undef PRIoFAST16
>  # define PRIoFAST16 "o"
>  #endif
> -#if !defined PRIuFAST16 || PRI_MACROS_BROKEN
> +#if !defined PRIuFAST16
>  # undef PRIuFAST16
>  # define PRIuFAST16 "u"
>  #endif
> -#if !defined PRIxFAST16 || PRI_MACROS_BROKEN
> +#if !defined PRIxFAST16
>  # undef PRIxFAST16
>  # define PRIxFAST16 "x"
>  #endif
> -#if !defined PRIXFAST16 || PRI_MACROS_BROKEN
> +#if !defined PRIXFAST16
>  # undef PRIXFAST16
>  # define PRIXFAST16 "X"
>  #endif
> -#if !defined PRIdFAST32 || PRI_MACROS_BROKEN
> +#if !defined PRIdFAST32
>  # undef PRIdFAST32
>  # define PRIdFAST32 "d"
>  #endif
> -#if !defined PRIiFAST32 || PRI_MACROS_BROKEN
> +#if !defined PRIiFAST32
>  # undef PRIiFAST32
>  # define PRIiFAST32 "i"
>  #endif
> -#if !defined PRIoFAST32 || PRI_MACROS_BROKEN
> +#if !defined PRIoFAST32
>  # undef PRIoFAST32
>  # define PRIoFAST32 "o"
>  #endif
> -#if !defined PRIuFAST32 || PRI_MACROS_BROKEN
> +#if !defined PRIuFAST32
>  # undef PRIuFAST32
>  # define PRIuFAST32 "u"
>  #endif
> -#if !defined PRIxFAST32 || PRI_MACROS_BROKEN
> +#if !defined PRIxFAST32
>  # undef PRIxFAST32
>  # define PRIxFAST32 "x"
>  #endif
> -#if !defined PRIXFAST32 || PRI_MACROS_BROKEN
> +#if !defined PRIXFAST32
>  # undef PRIXFAST32
>  # define PRIXFAST32 "X"
>  #endif
> -#if !defined PRIdFAST64 || PRI_MACROS_BROKEN
> +#if !defined PRIdFAST64
>  # undef PRIdFAST64
>  # define PRIdFAST64 PRId64
>  #endif
> -#if !defined PRIiFAST64 || PRI_MACROS_BROKEN
> +#if !defined PRIiFAST64
>  # undef PRIiFAST64
>  # define PRIiFAST64 PRIi64
>  #endif
> -#if !defined PRIoFAST64 || PRI_MACROS_BROKEN
> +#if !defined PRIoFAST64
>  # undef PRIoFAST64
>  # define PRIoFAST64 PRIo64
>  #endif
> -#if !defined PRIuFAST64 || PRI_MACROS_BROKEN
> +#if !defined PRIuFAST64
>  # undef PRIuFAST64
>  # define PRIuFAST64 PRIu64
>  #endif
> -#if !defined PRIxFAST64 || PRI_MACROS_BROKEN
> +#if !defined PRIxFAST64
>  # undef PRIxFAST64
>  # define PRIxFAST64 PRIx64
>  #endif
> -#if !defined PRIXFAST64 || PRI_MACROS_BROKEN
> +#if !defined PRIXFAST64
>  # undef PRIXFAST64
>  # define PRIXFAST64 PRIX64
>  #endif
> -#if !defined PRIdMAX || PRI_MACROS_BROKEN
> +#if !defined PRIdMAX
>  # undef PRIdMAX
>  # define PRIdMAX (sizeof (uintmax_t) == sizeof (long) ? "ld" : "lld")
>  #endif
> -#if !defined PRIiMAX || PRI_MACROS_BROKEN
> +#if !defined PRIiMAX
>  # undef PRIiMAX
>  # define PRIiMAX (sizeof (uintmax_t) == sizeof (long) ? "li" : "lli")
>  #endif
> -#if !defined PRIoMAX || PRI_MACROS_BROKEN
> +#if !defined PRIoMAX
>  # undef PRIoMAX
>  # define PRIoMAX (sizeof (uintmax_t) == sizeof (long) ? "lo" : "llo")
>  #endif
> -#if !defined PRIuMAX || PRI_MACROS_BROKEN
> +#if !defined PRIuMAX
>  # undef PRIuMAX
>  # define PRIuMAX (sizeof (uintmax_t) == sizeof (long) ? "lu" : "llu")
>  #endif
> -#if !defined PRIxMAX || PRI_MACROS_BROKEN
> +#if !defined PRIxMAX
>  # undef PRIxMAX
>  # define PRIxMAX (sizeof (uintmax_t) == sizeof (long) ? "lx" : "llx")
>  #endif
> -#if !defined PRIXMAX || PRI_MACROS_BROKEN
> +#if !defined PRIXMAX
>  # undef PRIXMAX
>  # define PRIXMAX (sizeof (uintmax_t) == sizeof (long) ? "lX" : "llX")
>  #endif
> -#if !defined PRIdPTR || PRI_MACROS_BROKEN
> +#if !defined PRIdPTR
>  # undef PRIdPTR
>  # define PRIdPTR \
>    (sizeof (void *) == sizeof (long) ? "ld" : \
>     sizeof (void *) == sizeof (int) ? "d" : \
>     "lld")
>  #endif
> -#if !defined PRIiPTR || PRI_MACROS_BROKEN
> +#if !defined PRIiPTR
>  # undef PRIiPTR
>  # define PRIiPTR \
>    (sizeof (void *) == sizeof (long) ? "li" : \
>     sizeof (void *) == sizeof (int) ? "i" : \
>     "lli")
>  #endif
> -#if !defined PRIoPTR || PRI_MACROS_BROKEN
> +#if !defined PRIoPTR
>  # undef PRIoPTR
>  # define PRIoPTR \
>    (sizeof (void *) == sizeof (long) ? "lo" : \
>     sizeof (void *) == sizeof (int) ? "o" : \
>     "llo")
>  #endif
> -#if !defined PRIuPTR || PRI_MACROS_BROKEN
> +#if !defined PRIuPTR
>  # undef PRIuPTR
>  # define PRIuPTR \
>    (sizeof (void *) == sizeof (long) ? "lu" : \
>     sizeof (void *) == sizeof (int) ? "u" : \
>     "llu")
>  #endif
> -#if !defined PRIxPTR || PRI_MACROS_BROKEN
> +#if !defined PRIxPTR
>  # undef PRIxPTR
>  # define PRIxPTR \
>    (sizeof (void *) == sizeof (long) ? "lx" : \
>     sizeof (void *) == sizeof (int) ? "x" : \
>     "llx")
>  #endif
> -#if !defined PRIXPTR || PRI_MACROS_BROKEN
> +#if !defined PRIXPTR
>  # undef PRIXPTR
>  # define PRIXPTR \
>    (sizeof (void *) == sizeof (long) ? "lX" : \



More information about the Libc-alpha mailing list