This PR is a followup to <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18257> as it didn't fix all the problems arising from the reworking of import_export_decl on systems without weak support.
Here is a summary of the types of fails that I see in the g++ and libstdc++ testsuites that I believe are related to this issue: Executing on host: /opt/build/dave/gcc-4.0.0/objdir/gcc/testsuite/../g++ -B/opt/ build/dave/gcc-4.0.0/objdir/gcc/testsuite/../ cp_compat_main_tst.o cp_compat_x_t st.o cp_compat_y_tst.o -nostdinc++ -I/opt/build/dave/gcc-4.0.0/objdir/powerpc-i bm-aix4.3.3.0/libstdc++-v3/include/powerpc-ibm-aix4.3.3.0 -I/opt/build/dave/gcc- 4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include -I/opt/build/dave/gcc-4 .0.0/gcc/libstdc++-v3/libsupc++ -I/opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/inc lude/backward -I/opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/testsuite -fmessage-l ength=0 -w -L/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/./libst dc++-v3/src/.libs -L/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/./li biberty -lm -o g++-dg-compat-abi-vbase8-10-01 (timeout = 300) ld: 0711-317 ERROR: Undefined symbol: vtable for __cxxabiv1::__vmi_class_type_in fo ld: 0711-317 ERROR: Undefined symbol: vtable for __cxxabiv1::__class_type_info ld: 0711-317 ERROR: Undefined symbol: vtable for __cxxabiv1::__si_class_type_inf o ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information. collect2: ld returned 8 exit status compiler exited with status 1 Executing on host: /opt/build/dave/gcc-4.0.0/objdir/gcc/testsuite/../g++ -B/opt/ build/dave/gcc-4.0.0/objdir/gcc/testsuite/../ cp_compat_main_tst.o cp_compat_x_t st.o cp_compat_y_tst.o -nostdinc++ -I/opt/build/dave/gcc-4.0.0/objdir/powerpc-i bm-aix4.3.3.0/libstdc++-v3/include/powerpc-ibm-aix4.3.3.0 -I/opt/build/dave/gcc- 4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include -I/opt/build/dave/gcc-4 .0.0/gcc/libstdc++-v3/libsupc++ -I/opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/inc lude/backward -I/opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/testsuite -fmessage-l ength=0 -L/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/./libstdc ++-v3/src/.libs -L/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/./libi berty -lm -o g++-dg-compat-eh-new1-01 (timeout = 300) ld: 0711-317 ERROR: Undefined symbol: typeinfo for std::bad_alloc ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information. collect2: ld returned 8 exit status compiler exited with status 1 Executing on host: /opt/build/dave/gcc-4.0.0/objdir/gcc/testsuite/../g++ -B/opt/ build/dave/gcc-4.0.0/objdir/gcc/testsuite/../ /opt/build/dave/gcc-4.0.0/gcc/gcc/ testsuite/g++.dg/abi/rtti2.C -nostdinc++ -I/opt/build/dave/gcc-4.0.0/objdir/pow erpc-ibm-aix4.3.3.0/libstdc++-v3/include/powerpc-ibm-aix4.3.3.0 -I/opt/build/dav e/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include -I/opt/build/dave /gcc-4.0.0/gcc/libstdc++-v3/libsupc++ -I/opt/build/dave/gcc-4.0.0/gcc/libstdc++- v3/include/backward -I/opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/testsuite -fmes sage-length=0 -ansi -pedantic-errors -Wno-long-long -L/opt/build/dave/gcc-4 .0.0/objdir/powerpc-ibm-aix4.3.3.0/./libstdc++-v3/src/.libs -L/opt/build/dave/gc c-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/./libiberty -lm -o ./rtti2.exe (time out = 300) ld: 0711-317 ERROR: Undefined symbol: vtable for __cxxabiv1::__pointer_type_info ld: 0711-317 ERROR: Undefined symbol: vtable for __cxxabiv1::__array_type_info ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information. collect2: ld returned 8 exit status compiler exited with status 1 Executing on host: /opt/build/dave/gcc-4.0.0/objdir/gcc/testsuite/../g++ -B/opt/ build/dave/gcc-4.0.0/objdir/gcc/testsuite/../ /opt/build/dave/gcc-4.0.0/gcc/gcc/ testsuite/g++.dg/eh/crossjump1.C -nostdinc++ -I/opt/build/dave/gcc-4.0.0/objdir /powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/powerpc-ibm-aix4.3.3.0 -I/opt/build /dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include -I/opt/build/ dave/gcc-4.0.0/gcc/libstdc++-v3/libsupc++ -I/opt/build/dave/gcc-4.0.0/gcc/libstd c++-v3/include/backward -I/opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/testsuite - fmessage-length=0 -O2 -L/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3. 3.0/./libstdc++-v3/src/.libs -L/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4 .3.3.0/./libiberty -lm -o ./crossjump1.exe (timeout = 300) ld: 0711-317 ERROR: Undefined symbol: vtable for __cxxabiv1::__si_class_type_inf o ld: 0711-317 ERROR: Undefined symbol: typeinfo for std::exception ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information. collect2: ld returned 8 exit status compiler exited with status 1 Executing on host: /opt/build/dave/gcc-4.0.0/objdir/gcc/testsuite/../g++ -B/opt/ build/dave/gcc-4.0.0/objdir/gcc/testsuite/../ /opt/build/dave/gcc-4.0.0/gcc/gcc/ testsuite/g++.dg/opt/pr15551.C -nostdinc++ -I/opt/build/dave/gcc-4.0.0/objdir/p owerpc-ibm-aix4.3.3.0/libstdc++-v3/include/powerpc-ibm-aix4.3.3.0 -I/opt/build/d ave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include -I/opt/build/da ve/gcc-4.0.0/gcc/libstdc++-v3/libsupc++ -I/opt/build/dave/gcc-4.0.0/gcc/libstdc+ +-v3/include/backward -I/opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/testsuite -fm essage-length=0 -O3 -L/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3. 0/./libstdc++-v3/src/.libs -L/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3 .3.0/./libiberty -lm -o ./pr15551.exe (timeout = 300) ld: 0711-317 ERROR: Undefined symbol: VTT for std::basic_ofstream<char, std::cha r_traits<char> > ld: 0711-317 ERROR: Undefined symbol: vtable for std::basic_ofstream<char, std:: char_traits<char> > ld: 0711-317 ERROR: Undefined symbol: vtable for std::basic_filebuf<char, std::c har_traits<char> > ld: 0711-317 ERROR: Undefined symbol: vtable for std::basic_streambuf<char, std: :char_traits<char> > ld: 0711-317 ERROR: Undefined symbol: vtable for std::basic_ios<char, std::char_ traits<char> > ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information. collect2: ld returned 8 exit status compiler exited with status 1 Executing on host: /opt/build/dave/gcc-4.0.0/objdir/gcc/testsuite/../g++ -B/opt/ build/dave/gcc-4.0.0/objdir/gcc/testsuite/../ /opt/build/dave/gcc-4.0.0/gcc/gcc/ testsuite/g++.old-deja/g++.eh/spec1.C -nostdinc++ -I/opt/build/dave/gcc-4.0.0/o bjdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/powerpc-ibm-aix4.3.3.0 -I/opt/ build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include -I/opt/b uild/dave/gcc-4.0.0/gcc/libstdc++-v3/libsupc++ -I/opt/build/dave/gcc-4.0.0/gcc/l ibstdc++-v3/include/backward -I/opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/testsu ite -fmessage-length=0 -ansi -pedantic-errors -Wno-long-long -L/opt/build/d ave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/./libstdc++-v3/src/.libs -L/opt/buil d/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/./libiberty -lm -o ./spec1.exe (timeout = 300) ld: 0711-317 ERROR: Undefined symbol: vtable for std::exception ld: 0711-317 ERROR: Undefined symbol: vtable for std::bad_exception ld: 0711-317 ERROR: Undefined symbol: typeinfo for std::bad_exception ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information. collect2: ld returned 8 exit status compiler exited with status 1 Executing on host: /opt/build/dave/gcc-4.0.0/objdir/gcc/testsuite/../g++ -B/opt/ build/dave/gcc-4.0.0/objdir/gcc/testsuite/../ /opt/build/dave/gcc-4.0.0/gcc/gcc/ testsuite/g++.old-deja/g++.other/rtti1.C -nostdinc++ -I/opt/build/dave/gcc-4.0. 0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/powerpc-ibm-aix4.3.3.0 -I/o pt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include -I/op t/build/dave/gcc-4.0.0/gcc/libstdc++-v3/libsupc++ -I/opt/build/dave/gcc-4.0.0/gc c/libstdc++-v3/include/backward -I/opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/tes tsuite -fmessage-length=0 -frtti -L/opt/build/dave/gcc-4.0.0/objdir/powerpc- ibm-aix4.3.3.0/./libstdc++-v3/src/.libs -L/opt/build/dave/gcc-4.0.0/objdir/power pc-ibm-aix4.3.3.0/./libiberty -lm -o ./rtti1.exe (timeout = 300) ld: 0711-317 ERROR: Undefined symbol: vtable for __cxxabiv1::__pointer_to_member _type_info ld: 0711-317 ERROR: Undefined symbol: vtable for __cxxabiv1::__class_type_info ld: 0711-317 ERROR: Undefined symbol: vtable for __cxxabiv1::__pointer_type_info ld: 0711-317 ERROR: Undefined symbol: vtable for __cxxabiv1::__enum_type_info ld: 0711-317 ERROR: Undefined symbol: vtable for __cxxabiv1::__function_type_inf o ld: 0711-317 ERROR: Undefined symbol: vtable for __cxxabiv1::__array_type_info ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information. collect2: ld returned 8 exit status compiler exited with status 1 Executing on host: /opt/build/dave/gcc-4.0.0/objdir/gcc/g++ -shared-libgcc -B/op t/build/dave/gcc-4.0.0/objdir/gcc/ -nostdinc++ -L/opt/build/dave/gcc-4.0.0/objdi r/powerpc-ibm-aix4.3.3.0/libstdc++-v3/src -L/opt/build/dave/gcc-4.0.0/objdir/pow erpc-ibm-aix4.3.3.0/libstdc++-v3/src/.libs -B/home/dave/opt/gnu/gcc/gcc-4.0.0/po werpc-ibm-aix4.3.3.0/bin/ -B/home/dave/opt/gnu/gcc/gcc-4.0.0/powerpc-ibm-aix4.3. 3.0/lib/ -isystem /home/dave/opt/gnu/gcc/gcc-4.0.0/powerpc-ibm-aix4.3.3.0/includ e -isystem /home/dave/opt/gnu/gcc/gcc-4.0.0/powerpc-ibm-aix4.3.3.0/sys-include - g -O2 -D_GLIBCXX_ASSERT -fmessage-length=0 -DLOCALEDIR="/opt/build/dave/gcc-4.0. 0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/po/share/locale" -nostdinc++ -I/opt /build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/powerpc -ibm-aix4.3.3.0 -I/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstd c++-v3/include -I/opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/libsupc++ -I/opt/bui ld/dave/gcc-4.0.0/gcc/libstdc++-v3/include/backward -I/opt/build/dave/gcc-4.0.0/ gcc/libstdc++-v3/testsuite /opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/testsuite/ 17_intro/header_cassert.cc -include bits/stdc++.h -L/opt/build/dave/gcc-4.0. 0/objdir/powerpc-ibm-aix4.3.3.0/./libstdc++-v3/testsuite -lv3test -lm -o ./hea der_cassert.exe (timeout = 300) /opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/bit s/valarray_array.h:164: warning: inline function 'static void std::_Array_copy_c tor<_Tp, true>::_S_do_it(const _Tp*, const _Tp*, _Tp*) [with _Tp = size_t]' used but never defined ld: 0711-317 ERROR: Undefined symbol: vtable for __cxxabiv1::__si_class_type_info ld: 0711-317 ERROR: Undefined symbol: typeinfo for std::logic_error ld: 0711-317 ERROR: Undefined symbol: vtable for std::basic_istringstream<char, std::char_traits<char>, std::allocator<char> > ld: 0711-317 ERROR: Undefined symbol: vtable for std::basic_stringbuf<char, std: :char_traits<char>, std::allocator<char> > ld: 0711-317 ERROR: Undefined symbol: vtable for std::basic_streambuf<char, std: :char_traits<char> > ld: 0711-317 ERROR: Undefined symbol: VTT for std::basic_istringstream<char, std ::char_traits<char>, std::allocator<char> > ld: 0711-317 ERROR: Undefined symbol: vtable for std::basic_ios<char, std::char_ traits<char> > ld: 0711-317 ERROR: Undefined symbol: VTT for std::basic_ifstream<char, std::cha r_traits<char> > ld: 0711-317 ERROR: Undefined symbol: vtable for std::basic_ifstream<char, std:: char_traits<char> > ld: 0711-317 ERROR: Undefined symbol: vtable for std::basic_filebuf<char, std::c har_traits<char> > ld: 0711-317 ERROR: Undefined symbol: typeinfo for std::runtime_error ld: 0711-317 ERROR: Undefined symbol: vtable for std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> > ld: 0711-317 ERROR: Undefined symbol: VTT for std::basic_ostringstream<char, std ::char_traits<char>, std::allocator<char> > ld: 0711-317 ERROR: Undefined symbol: typeinfo for std::locale::facet ld: 0711-317 ERROR: Undefined symbol: vtable for __cxxabiv1::__vmi_class_type_in fo ld: 0711-317 ERROR: Undefined symbol: vtable for __cxxabiv1::__class_type_info ld: 0711-317 ERROR: Undefined symbol: std::basic_string<__gnu_cxx::character<uns igned short, unsigned int, char*>, std::char_traits<__gnu_cxx::character<unsigne d short, unsigned int, char*> >, std::allocator<__gnu_cxx::character<unsigned sh ort, unsigned int, char*> > >::_Rep::_S_max_size ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information. collect2: ld returned 8 exit status compiler exited with status 1 -- Summary: [4.0 Regression] Undefined symbol: vtable for __cxxabiv1::__vmi_class_type_info Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: danglin at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org,mark at codesourcery dot com GCC build triplet: powerpc-ibm-aix4.3.3.0 GCC host triplet: powerpc-ibm-aix4.3.3.0 GCC target triplet: powerpc-ibm-aix4.3.3.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19159