This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/66019] New: Corrupt libstdc++ on AIX 6.1
- From: "joerg dot richter at pdv-fs dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 05 May 2015 13:21:17 +0000
- Subject: [Bug target/66019] New: Corrupt libstdc++ on AIX 6.1
- Auto-submitted: auto-generated
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.richter@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.