FYI, there's a vague reference on http://gcc.gnu.org/install/specific.html#x- ibm-aix to linker bugs solved by IY53606, so I have verified that the latest 5.2 maintainence level is there, and it contains that APAR.
$ cat gccbug.cpp #include <string> int main() { std::string bla = "foo"; return bla.size(); } --- $ gcc -v Using built-in specs. Target: powerpc-ibm-aix5.2.0.0 Configured with: ../gcc-4.0.1/configure --prefix=/home/johnkw/external Thread model: aix gcc version 4.0.1 --- $ g++ -v -save-temps -Wl,-bnoquiet gccbug.cpp Using built-in specs. Target: powerpc-ibm-aix5.2.0.0 Configured with: ../gcc-4.0.1/configure --prefix=/home/johnkw/external Thread model: aix gcc version 4.0.1 /home/johnkw/external/libexec/gcc/powerpc-ibm-aix5.2.0.0/4.0.1/cc1plus -E - quiet -v -iprefix /home/johnkw/external/binpowerpc-ibm-aix5.2.0.0/4.0.1/ - D_ALL_SOURCE gccbug.cpp -fpch-preprocess -o gccbug.ii ignoring nonexistent directory "/home/johnkw/external/binpowerpc-ibm- aix5.2.0.0/4.0.1/../../../../include/c++/4.0.1" ignoring nonexistent directory "/home/johnkw/external/binpowerpc-ibm- aix5.2.0.0/4.0.1/../../../../include/c++/4.0.1/powerpc-ibm-aix5.2.0.0" ignoring nonexistent directory "/home/johnkw/external/binpowerpc-ibm- aix5.2.0.0/4.0.1/../../../../include/c++/4.0.1/backward" ignoring nonexistent directory "/home/johnkw/external/binpowerpc-ibm- aix5.2.0.0/4.0.1/include" ignoring nonexistent directory "/home/johnkw/external/binpowerpc-ibm- aix5.2.0.0/4.0.1/../../../../powerpc-ibm-aix5.2.0.0/include" ignoring nonexistent directory "/home/johnkw/external/lib/gcc/powerpc-ibm- aix5.2.0.0/4.0.1/../../../../powerpc-ibm-aix5.2.0.0/include" #include "..." search starts here: #include <...> search starts here: /home/johnkw/external/lib/gcc/powerpc-ibm- aix5.2.0.0/4.0.1/../../../../include/c++/4.0.1 /home/johnkw/external/lib/gcc/powerpc-ibm- aix5.2.0.0/4.0.1/../../../../include/c++/4.0.1/powerpc-ibm-aix5.2.0.0 /home/johnkw/external/lib/gcc/powerpc-ibm- aix5.2.0.0/4.0.1/../../../../include/c++/4.0.1/backward /usr/local/include /home/johnkw/external/include /home/johnkw/external/lib/gcc/powerpc-ibm-aix5.2.0.0/4.0.1/include /usr/include End of search list. /home/johnkw/external/libexec/gcc/powerpc-ibm-aix5.2.0.0/4.0.1/cc1plus - fpreprocessed gccbug.ii -quiet -dumpbase gccbug.cpp -auxbase gccbug -version -o gccbug.s GNU C++ version 4.0.1 (powerpc-ibm-aix5.2.0.0) compiled by GNU C version 4.0.1. GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=32768 as -u -mppc -o gccbug.o gccbug.s /home/johnkw/external/libexec/gcc/powerpc-ibm-aix5.2.0.0/4.0.1/collect2 - bpT:0x10000000 -bpD:0x20000000 -btextro -bnodelcsect /lib/crt0.o - L/home/johnkw/external/bin -L/home/johnkw/external/lib/gcc/powerpc-ibm- aix5.2.0.0/4.0.1 -L/home/johnkw/external/lib/gcc/powerpc-ibm- aix5.2.0.0/4.0.1/../../../../powerpc-ibm-aix5.2.0.0/lib - L/home/johnkw/external/.. -L/home/johnkw/external/lib/gcc/powerpc-ibm- aix5.2.0.0/4.0.1/../../.. -bnoquiet gccbug.o -lstdc++ -lm - lgcc_s /home/johnkw/external/lib/gcc/powerpc-ibm-aix5.2.0.0/4.0.1/libgcc.a -lc - lgcc_s /home/johnkw/external/lib/gcc/powerpc-ibm-aix5.2.0.0/4.0.1/libgcc.a (ld): halt 4 (ld): setopt r/o->w (ld): setopt nodelcsect (ld): lrgpage 0 (ld): savename a.out (ld): filelist 8 1 (ld): i /lib/crt0.o (ld): i /tmp//ccg0kYOd.o (ld): i gccbug.o (ld): lib /home/johnkw/external/lib/gcc/powerpc-ibm- aix5.2.0.0/4.0.1/../../../libstdc++.a (ld): lib /usr/lib/libm.a (ld): lib /home/johnkw/external/lib/gcc/powerpc-ibm- aix5.2.0.0/4.0.1/../../../libgcc_s.a (ld): i /home/johnkw/external/lib/gcc/powerpc-ibm-aix5.2.0.0/4.0.1/libgcc.a (ld): lib /usr/lib/libc.a LIBRARY: Shared object libstdc++.a[libstdc++.so.6]: 1162 symbols imported. LIBRARY: Shared object libgcc_s.a[shr.o]: 108 symbols imported. LIBRARY: Shared object libc.a[shr.o]: 2562 symbols imported. LIBRARY: Shared object libc.a[meth.o]: 2 symbols imported. LIBRARY: Shared object libc.a[posix_aio.o]: 17 symbols imported. LIBRARY: Shared object libc.a[aio.o]: 11 symbols imported. LIBRARY: Shared object libc.a[pse.o]: 5 symbols imported. LIBRARY: Shared object libc.a[dl.o]: 4 symbols imported. LIBRARY: Shared object libc.a[pty.o]: 1 symbols imported. FILELIST: Number of previously inserted files processed: 8 (ld): initfini _GLOBAL__FI_a_out _GLOBAL__FD_a_out (ld): resolve RESOLVE: 70 of 5339 symbols were kept. (ld): addgl /usr/lib/glink.o ADDGL: Glink code added for 15 symbols. (ld): er full ld: 0711-318 ERROR: Undefined symbols were found. The following symbols are in error: Symbol Inpndx TY CL Source-File(Object-File) OR Import-File {Shared-object} RLD: Address Section Rld-type Referencing Symbol ------------------------------------------------------------------------------- --------------- ld: 0711-317 ERROR: Undefined symbol: .std::allocator<char>::allocator() .std::allocator<char>::allocator()[2] ER PR gccbug.cpp(gccbug.o) 0000001c .text R_RBR [18] .main ld: 0711-317 ERROR: Undefined symbol: .std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) .std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)[4] ER PR gccbug.cpp(gccbug.o) 00000034 .text R_RBR [18] .main ld: 0711-317 ERROR: Undefined symbol: .std::allocator<char>::~allocator() .std::allocator<char>::~allocator()[6] ER PR gccbug.cpp(gccbug.o) 0000004c .text R_RBR [18] .main 00000068 .text R_RBR [18] .main ld: 0711-317 ERROR: Undefined symbol: .std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size() const .std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size () const[10] ER PR gccbug.cpp(gccbug.o) 00000078 .text R_RBR [18] .main ld: 0711-317 ERROR: Undefined symbol: .std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string() .std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()[12] ER PR gccbug.cpp(gccbug.o) 00000090 .text R_RBR [18] .main 000000b0 .text R_RBR [18] .main ER: The return code is 8. collect2: ld returned 8 exit status -- Summary: libstdc++ fails to link with std::string on AIX Product: gcc Version: 4.0.1 Status: UNCONFIRMED Severity: critical Priority: P2 Component: libstdc++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: appfault at hotmail dot com CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: powerpc-ibm-aix5.2.0.0 GCC host triplet: powerpc-ibm-aix5.2.0.0 GCC target triplet: powerpc-ibm-aix5.2.0.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23406