Try linking the following two C++ sources together: struct a { virtual void g(); virtual void f(){} }; int main() { a b; b.f(); b.g(); } ---- cut ----- struct a { virtual void g(); virtual void f(){} }; void a::g() {}
We get an error: /tmp/ccFSWYxL.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0' /tmp/ccUWWgfl.o(.gnu.linkonce.r._ZTI1a[typeinfo for a]+0x0): undefined reference to `vtable for __cxxabiv1::__class_type_info' This is relative new binutils too: GNU ld version 2.15.94 20041104 Also this breaks building libjava on the same target. -- Summary: [4.1 Regressions] Cannot link two valid C++ TU together Product: gcc Version: 4.0.0 Status: UNCONFIRMED Keywords: wrong-code, build Severity: critical Priority: P2 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pinskia at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20228