libstdc++: skip AIX fat-archive repackage for single-arch builds
AIX libstdc++ builds now correctly skip a problematic archive repackaging step when building for a single architecture.
This commit prevents libstdc++ from corrupting single-architecture builds on AIX by skipping an unnecessary archive repackaging step. GNU binutils’ ar command has issues merging 32-bit and 64-bit archives, which interfered with single-architecture builds. The change modifies the AIX configuration to avoid this repackaging when only one architecture is targeted.
In Details
The AIX build process for libstdc++ previously attempted to repackage 32/64-bit archives even for single-architecture cross-builds. This operation, intended for dual-architecture builds, would fail with GNU binutils' ar due to its limitations. The fix in libstdc++-v3/config/os/aix/t-aix conditionally skips this repackaging step when MULTIDIRS is empty, thus preserving the integrity of single-architecture library builds.
- libstdc++
- The standard C++ library implementation for GCC. It provides the C++ standard library components, including containers, algorithms, and I/O streams.
- AIX
- A proprietary Unix operating system developed by IBM for its RS/6000 and related hardware. GCC supports cross-compilation for AIX.
- fat archive
- A library archive that contains object files for multiple architectures or ABIs. On AIX, this typically refers to archives containing both 32-bit and 64-bit code.
- MULTIBUILDTOP
- A build system variable or configuration setting used in GCC's build process, likely related to managing multi-architecture or multi-directory build configurations.