+2025-04-12 Collin Funk <collin.funk1@gmail.com>
+
+ stdlib: Avoid syntax errors in libstdc++ header files on AIX.
+ * lib/stdlib.in.h: Include <string> before strtol, strtoll, strtoul, or
+ strtoull gets defined as a macro.
+
2025-04-12 Bruno Haible <bruno@clisp.org>
fnmatch tests: Avoid test failures on macOS 15.4.
# include <unistd.h>
#endif
-#if ((@GNULIB_STRTOL@ && @REPLACE_STRTOL@) || (@GNULIB_STRTOLL@ && @REPLACE_STRTOLL@) || (@GNULIB_STRTOUL@ && @REPLACE_STRTOUL@) || (@GNULIB_STRTOULL@ && @REPLACE_STRTOULL@)) && defined __cplusplus && !defined GNULIB_NAMESPACE && defined __GNUG__ && !defined __clang__ && defined __sun
+#if ((@GNULIB_STRTOL@ && @REPLACE_STRTOL@) || (@GNULIB_STRTOLL@ && @REPLACE_STRTOLL@) || (@GNULIB_STRTOUL@ && @REPLACE_STRTOUL@) || (@GNULIB_STRTOULL@ && @REPLACE_STRTOULL@)) && defined __cplusplus && !defined GNULIB_NAMESPACE && defined __GNUG__ && !defined __clang__ && (defined __sun || defined _AIX)
/* When strtol, strtoll, strtoul, or strtoull is going to be defined as a macro
below, this may cause compilation errors later in the libstdc++ header files
(that are part of GCC), such as:
error: 'rpl_strtol' is not a member of 'std'
To avoid this, include the relevant header files here, before these symbols
- get defined as macros. But do so only on Solaris 11 (where it is needed),
- not on mingw (where it would cause other compilation errors). */
+ get defined as macros. But do so only on Solaris 11 and AIX (where it is
+ needed), not on mingw (where it would cause other compilation errors). */
# include <string>
#endif