This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GCC 4.1 bootstrap failed at ia64-*-linux


IA64 bootstrap failed at abi_check stage reporting undefined references
from libstdc++ (see log at the bottom). 

That happens because of missed bodies of some compiler-generate
functions. For example, minimal reproducer listed below fails to link
with xgcc, reporting undefined reference from B::vtable to virtual
destructor B::~B().

$ cat foo.cpp
class A
{
  public:
    virtual ~A();
};
class B : public A
{
  public:
    B();
};
A::~A() {};
B::B()  {};
int main() {}

$ /bootstrap/build/./gcc/xgcc -B/bootstrap/build/./gcc foo.cpp
/tmp/ccSauNDl.o(.gnu.linkonce.r._ZTV1B+0x10): undefined reference to
`B::~B()'
/tmp/ccSauNDl.o(.gnu.linkonce.r._ZTV1B+0x20): undefined reference to
`B::~B()'


How it is possible that recent cgraph changes affect ia64 compiler
behavior? I see reclaimed callgraph differs on ia64 but not on ia32;
therefore ia32/x86_64 compiler remains stable.

Any suggestion that help analyze this is highly appreciated!
---
Grigory Zagorodnev
Intel Corporation


PS: bootstrap log for identification reasons
--------------------------------------------
/bootstrap/build/./gcc/g++ -shared-libgcc -B/bootstrap/build/./gcc/
-nostdinc++ -B/bootstrap/usr/ia64-redhat-linux/bin/
-B/bootstrap/usr/ia64-redhat-linux/lib/ -isystem
/bootstrap/usr/ia64-redhat-linux/include -isystem
/bootstrap/usr/ia64-redhat-linux/sys-include -g -O2 -D_GLIBCXX_ASSERT
-ffunction-sections -fdata-sections -fmessage-length=0
-DLOCALEDIR=/bootstrap/build/ia64-redhat-linux/libstdc++-v3/po/share/loc
ale -g -O2 -D_GNU_SOURCE -o abi_check abi_check.o
-L/bootstrap/build/ia64-redhat-linux/libstdc++-v3/src
-L/bootstrap/build/ia64-redhat-linux/libstdc++-v3/src/.libs -lv3test
-L/bootstrap/build/ia64-redhat-linux/libstdc++-v3/testsuite -lm
-Wl,--rpath -Wl,/bootstrap/build/./gcc -Wl,--rpath
-Wl,/bootstrap/build/ia64-redhat-linux/libstdc++-v3/src/.libs
/bootstrap/build/ia64-redhat-linux/libstdc++-v3/src/.libs/libstdc++.so:
undefined reference to `std::ctype<char>::do_widen(char const*, char
const*, char*) const'
/bootstrap/build/ia64-redhat-linux/libstdc++-v3/src/.libs/libstdc++.so:
undefined reference to `std::basic_stringbuf<char,
std::char_traits<char>, std::allocator<char> >::~basic_stringbuf()'
/bootstrap/build/ia64-redhat-linux/libstdc++-v3/src/.libs/libstdc++.so:
undefined reference to `std::overflow_error::~overflow_error()'
...
collect2: ld returned 1 exit status
make[4]: *** [abi_check] Error 1
make[4]: Leaving directory
`/home/gcc_testbot/bootstrap/000816/bld/ia64-redhat-linux/libstdc++-v3/t
estsuite'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory
`/home/gcc_testbot/bootstrap/000816/bld/ia64-redhat-linux/libstdc++-v3'
make[2]: *** [all] Error 2
make[2]: Leaving directory
`/home/gcc_testbot/bootstrap/000816/bld/ia64-redhat-linux/libstdc++-v3'
make[1]: *** [all-target-libstdc++-v3] Error 2
make[1]: Leaving directory `/home/gcc_testbot/bootstrap/000816/bld'
make: *** [bootstrap] Error 2


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]