[CCing bug-gettext] David Edelsohn wrote in <https://gcc.gnu.org/pipermail/gcc-patches/2023-November/636558.html>: > The current gettext-0.22.3 fails to build for me on AIX.
Here are some hints to get a successful build of GNU gettext on AIX: 1. Set the recommended environment variables before running configure: https://gitlab.com/ghwiki/gnow-how/-/wikis/Platforms/Configuration Namely: * for a 32-bit build with gcc: CC=gcc CXX=g++ CPPFLAGS="-I$PREFIX/include" LDFLAGS="-L$PREFIX/lib" unset AR NM * for a 32-bit build with xlc: CC="xlc -qthreaded -qtls" CXX="xlC -qthreaded -qtls" CPPFLAGS="-I$PREFIX/include" LDFLAGS="-L$PREFIX/lib" unset AR NM * for a 64-bit build with gcc: CC="gcc -maix64" CXX="g++ -maix64" CPPFLAGS="-I$PREFIX/include" LDFLAGS="-L$PREFIX/lib" AR="ar -X 64"; NM="nm -X 64 -B" * for a 64-bit build with xlc: CC="xlc -q64 -qthreaded -qtls" CXX="xlC -q64 -qthreaded -qtls" CPPFLAGS="-I$PREFIX/include" LDFLAGS="-L$PREFIX/lib" AR="ar -X 64"; NM="nm -X 64 -B" where $PREFIX is the value that you pass to the --prefix configure option. Rationale: you can run into all sorts of problems if you choose compiler options at random and haven't experience with compiler options on that platform. 2. Don't use ibm-clang. Rationale: It's broken. 3. Don't use -Wall with gcc 10.3. Rationale: If you specify -Wall, gettext's configure adds -fanalyzer, which has excessive memory requirements in gcc 10.x. In particular, on AIX, it makes cc1 crash while compiling regex.c after it has consumed 1 GiB of RAM. 4. Avoid using a --prefix that contains earlier installations of the same package. Rationale: Because the AIX linker hardcodes directory names in shared libraries, GNU libtool has a peculiar configuration on AIX. It ends up mixing the in-build-tree libraries with the libraries in the install locations, leading to all sorts of errors. If you really need to use a --prefix that contains an earlier installation of the same package: - Either use --disable-shared and remove libgettextlib.a and libgettextsrc.a from $PREFIX/lib before starting the build. - Or use a mix of "make -k", "make -k install" and ad-hoc workarounds that cannot be described in a general way. Bruno