https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66019
Bug ID: 66019 Summary: Corrupt libstdc++ on AIX 6.1 Product: gcc Version: 4.9.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: joerg.rich...@pdv-fs.de Target Milestone: --- Host: powerpc-ibm-aix6.1.0.0 Target: powerpc-ibm-aix6.1.0.0 Build: powerpc-ibm-aix6.1.0.0 I am building GCC 4.9.2 on AIX 6.1 with the same script I used for AIX 5.3. $ configure --enable-languages=c,c++ --disable-bootstrap --disable-nls --with-local-prefix=/not_existing_directory --enable-frame-pointer --with-ld=/bin/ld --with-as=/bin/as --prefix=/tools/pkg/gcc/4.9.2 make && make install During build of GCC are a lot of warnings like this: ld: 0711-768 WARNING: Object ../src/c++98/.libs/libc++98convenience.a[locale-inst.o], section 1, function .std::istreambuf_iterator<char, std::char_traits<char> >::_M_get() const: The branch at address 0x15534 is not followed by a recognized no-op or TOC-reload instruction. The unrecognized instruction is 0x8D3C0001. There are 3728 ld 0711-768 warnings. On AIX 5.3 there are no warnings using the same script. Nevertheless GCC builds without errors. But when compiling and running application code that calles std::istreambuf_iterator<char>::_M_get() the process termines with SIGSEGV or SIGILL. Here is a gdb/bt of a crashed process: #0 0x0900000002edc554 in std::istreambuf_iterator<char, std::char_traits<char> >::_M_get () from libstdc++.a(libstdc++.so.6) #1 0x0900000002e6dce4 in std::istreambuf_iterator<char, std::char_traits<char> > std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::_M_extract_int<unsigned int>(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, std::_Ios_Iostate&, unsigned int&) const [clone .localalias.77] () from libstdc++.a(libstdc++.so.6) #2 0x0900000002e6db6c in std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, std::_Ios_Iostate&, unsigned int&) const [clone .localalias.236] () from libstdc++.a(libstdc++.so.6) #3 0x0900000002e92658 in std::istream& std::istream::_M_extract<unsigned int>(unsigned int&) [clone .localalias.69] () from libstdc++.a(libstdc++.so.6) Searching for ld: 0711-768 seem to indicate that this warnings should not be ignored. The error might be related to some missing GNU-tool. The 6.1 machine is not using the same GNU tools like the 5.3 maschine. I know that GCC does not build with AIX-sed/awk. Might be that I missed another GNU tool that will fix this problem. But I have no idea what it can be.