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

Reply via email to