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
Created attachment 7829 [details] Proposed patch Dave -- Would you mind retesting with this patch? I think it will fix the problems, but I'm not 100% sure. Thanks, -- Mark
Subject: Re: [4.0 Regression] Undefined symbol: vtable for __c > Would you mind retesting with this patch? I think it will fix the problems, > but I'm not 100% sure. Will do. Dave
Mark, I believe that you got the vtable for the typeinfo nodes. However, we still have errors like the following: 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_istream.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_istream.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 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: 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: 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
Created attachment 7888 [details] Proposed patch Dave, would you mind testing with this revision to the patch? Thanks!
Subject: Re: [4.0 Regression] Undefined symbol: vtable for __c > Dave, would you mind testing with this revision to the patch? I'll try this evening. It's taken some time but I believe that the following change broke my original suggested fix to decl2.c (import_export_decl): 2004-12-16 Nathan Sidwell <nathan@codesourcery.com> PR c++/18905 * cp-tree.h (integral_constant_value): Declare. * call.c (null_ptr_cst_p): Use integral_constant_value, not decl_constant_value. (convert_like_real): Likewise. * class.c (check_bitfield_decl): Likewise. * cvt.c (ocp_convert): Likewise. (convert): Remove unnecessary decl_constant_value call. * decl.c (compute_array_index_type): Use integral_constant_value, not decl_constant_value. (build_enumerator): Likewise. * decl2.c (grokfield): Likewise. * init.c (decl_constant_value): Simplify. (integral_constant_value): New. * pt.c (fold_decl_constant_value): Use integral_constant_value, remove subsequent check. (tsubst): Use integral_constant_value, not decl_constant_value. (tsubst_copy, unify): Likewise. * typeck.c (decay_conversion): Likewise. (build_compound_expr): Remove unnecessary decl_constant_value calls. (build_static_cast_1, build_reinterpret_cast_1): (convert_for_assignment): Remove comment about not calling decl_constant_value. I know the breakage occurred between 12/16/04 00:00:00 UTC and 12/17/04 00:00:00 UTC. I was going to try your previous changes prior to the point of the breakage. Let me know if you can see why the above might have affected the situation. Dave
Subject: Re: [4.0 Regression] Undefined symbol: vtable for __cxxabiv1::__vmi_class_type_info dave at hiauly1 dot hia dot nrc dot ca wrote: > ------- Additional Comments From dave at hiauly1 dot hia dot nrc dot ca 2005-01-06 23:04 ------- > Subject: Re: [4.0 Regression] Undefined symbol: vtable for __c > > >>Dave, would you mind testing with this revision to the patch? Thanks! > I'll try this evening. It's taken some time but I believe that the > following change broke my original suggested fix to decl2.c > (import_export_decl): Huh; no, I don't see offhand why that change would have interacted with your proposed change.
I first tested the aix.patch using the cvs head. It still had the same problem. Using the tree from "12/16/04 11:03:00 UTC" (my original suggestion was known to work at this point), I tested the patch together with rtti.c changes for PR 18257. Still no joy. The vtables aren't being emitted because the runtime check in rtti.c (emit_support_tinfos) is broken: Breakpoint 1, emit_support_tinfos () at ../../gcc/gcc/cp/rtti.c:1342 1342 ../../gcc/gcc/cp/rtti.c: A file or directory in the path name does not exist.. in ../../gcc/gcc/cp/rtti.c (gdb) p debug_tree (dtor) <function_decl 300d5200 __fundamental_type_info type <method_type 300d5380 type <void_type 30018f00 void type_6 VOID align 8 symtab -11 alias set -1 pointer_to_this <pointer_type 30018f80>> SI size <integer_cst 300024a0 constant invariant 32> unit size <integer_cst 30002160 constant invariant 4> align 32 symtab 0 alias set -1 method basetype <record_type 300d4b00 __fundamental_type_info> arg-types <tree_list 300d2648 value <pointer_type 300d4f00> chain <tree_list 300af678 value <integer_type 30009780 int> chain <tree_list 3000ae40 value <void_type 30018f00 void>>>>> public abstract external no-static-chain virtual SI file /opt/build/dave/gcc- 4.0.0/gcc/libstdc++-v3/libsupc++/cxxabi.h line 167 context <record_type 300d4b00 __fundamental_type_info> arguments <parm_decl 300d5280 this type <pointer_type 300d5000 type <record_type 300d4b00 __fundamental_type_info> readonly unsigned SI size <integer_cst 300024a0 32> unit size < integer_cst 30002160 4> align 32 symtab 0 alias set -1> readonly unsigned SI file /opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/ libsupc++/cxxabi.h line 167 size <integer_cst 300024a0 32> unit size <integer_cst 30002160 4> align 32 initial <pointer_type 300d5000> arg-type <pointer_type 300d5000> chain <parm_decl 300d5300 __in_chrg type <integer_type 30009780 int> readonly SI file /opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/libsupc++ /cxxabi.h line 167 size <integer_cst 300024a0 32> unit size <integer_cst 30002160 4> align 32 initial <integer_type 30009780 int> arg-type <integer_type 30009780 int>>> chain <function_decl 300d5b00 __base_dtor >> $2 = void I recall now that my change to import_export_decl removed DECL_EXTERNAL from dtor.
FWIW, I've now confirmed that Nathan's change breaks my proposed fix in PR 18257. The error is: 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) 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
Dave -- I've finally got a new version of the patch. I've played with it some, and I feel like it ought to work, but maybe I'm still missing something. If it doesn't work, would you mind attached preprocessed source for tinfo.cc and tinfo2.cc from libsupc++? These are the files where the type info vtables ought to be defined. That would make it easier for me to experiment with things in an AIX cross compiler. Thanks! -- Mark
Created attachment 8506 [details] Proposed patch.
Test results with patch are here: <http://gcc.gnu.org/ml/gcc-testresults/2005-04/msg00116.html>.The patch improves the situation but there are still many fails:Executing on host: /opt/build/dave/gcc-4.0.0/objdir/gcc/g++ -shared-libgcc -B/opt/build/dave/gcc-4.0.0/objdir/gcc/ -nostdinc++ -L/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/src -L/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/src/.libs -B/home/dave/opt/gnu/gcc/gcc-4.0.0/powerpc-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/include -isystem /home/dave/opt/gnu/gcc/gcc-4.0.0/powerpc-ibm-aix4.3.3.0/sys-include -g -O2 -D_GLIBCXX_ASSERT -ffunction-sections -fdata-sections -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/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 /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 ./header_cassert.exe (timeout = 300)/opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/testsuite/17_intro/header_cassert.cc:1: warning: -ffunction-sections may affect debugging on some targets/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/bits/valarray_array.h:164: warning: inline function 'static void std::_Array_copy_ctor<_Tp, true>::_S_do_it(const _Tp*, const _Tp*, _Tp*) [with _Tp = size_t]' used but never definedoutput is:/opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/testsuite/17_intro/header_cassert.cc:1: warning: -ffunction-sections may affect debugging on some targets/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/bits/valarray_array.h:164: warning: inline function 'static void std::_Array_copy_ctor<_Tp, true>::_S_do_it(const _Tp*, const _Tp*, _Tp*) [with _Tp = size_t]' used but never definedFAIL: 17_intro/header_cassert.cc (test for excess errors)Excess errors:/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/bits/valarray_array.h:164: warning: inline function 'static void std::_Array_copy_ctor<_Tp, true>::_S_do_it(const _Tp*, const _Tp*, _Tp*) [with _Tp = size_t]' used but never definedExecuting on host: /opt/build/dave/gcc-4.0.0/objdir/gcc/g++ -shared-libgcc -B/opt/build/dave/gcc-4.0.0/objdir/gcc/ -nostdinc++ -L/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/src -L/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/src/.libs -B/home/dave/opt/gnu/gcc/gcc-4.0.0/powerpc-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/include -isystem /home/dave/opt/gnu/gcc/gcc-4.0.0/powerpc-ibm-aix4.3.3.0/sys-include -g -O2 -D_GLIBCXX_ASSERT -ffunction-sections -fdata-sections -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/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 /opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/testsuite/18_support/numeric_limits.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 ./numeric_limits.exe (timeout = 300)/opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/testsuite/18_support/numeric_limits.cc:1: warning: -ffunction-sections may affect debugging on some targets/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:289: warning: inline function 'static _Tp std::numeric_limits<_Tp>::min() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:291: warning: inline function 'static _Tp std::numeric_limits<_Tp>::max() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:294: warning: inline function 'static _Tp std::numeric_limits<_Tp>::epsilon() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:296: warning: inline function 'static _Tp std::numeric_limits<_Tp>::round_error() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:298: warning: inline function 'static _Tp std::numeric_limits<_Tp>::infinity() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:300: warning: inline function 'static _Tp std::numeric_limits<_Tp>::quiet_NaN() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:303: warning: inline function 'static _Tp std::numeric_limits<_Tp>::signaling_NaN() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:307: warning: inline function 'static _Tp std::numeric_limits<_Tp>::denorm_min() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/bits/valarray_array.h:164: warning: inline function 'static void std::_Array_copy_ctor<_Tp, true>::_S_do_it(const _Tp*, const _Tp*, _Tp*) [with _Tp = size_t]' used but never definedoutput is:/opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/testsuite/18_support/numeric_limits.cc:1: warning: -ffunction-sections may affect debugging on some targets/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:289: warning: inline function 'static _Tp std::numeric_limits<_Tp>::min() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:291: warning: inline function 'static _Tp std::numeric_limits<_Tp>::max() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:294: warning: inline function 'static _Tp std::numeric_limits<_Tp>::epsilon() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:296: warning: inline function 'static _Tp std::numeric_limits<_Tp>::round_error() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:298: warning: inline function 'static _Tp std::numeric_limits<_Tp>::infinity() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:300: warning: inline function 'static _Tp std::numeric_limits<_Tp>::quiet_NaN() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:303: warning: inline function 'static _Tp std::numeric_limits<_Tp>::signaling_NaN() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:307: warning: inline function 'static _Tp std::numeric_limits<_Tp>::denorm_min() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/bits/valarray_array.h:164: warning: inline function 'static void std::_Array_copy_ctor<_Tp, true>::_S_do_it(const _Tp*, const _Tp*, _Tp*) [with _Tp = size_t]' used but never definedFAIL: 18_support/numeric_limits.cc (test for excess errors)etc.
Created attachment 8512 [details] Preprocessed AIX 4.3.3 source file
Created attachment 8513 [details] Preprocessed AIX 4.3.3 source file
Somehow missing from bugzilla is this comment from Dave: The patch improves the situation but there are still many fails:Executing on host: /opt/build/dave/gcc-4.0.0/objdir/gcc/g++ -shared-libgcc -B/opt/build/dave/gcc-4.0.0/objdir/gcc/ -nostdinc++ -L/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/src -L/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/src/.libs -B/home/dave/opt/gnu/gcc/gcc-4.0.0/powerpc-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/include -isystem /home/dave/opt/gnu/gcc/gcc-4.0.0/powerpc-ibm-aix4.3.3.0/sys-include -g -O2 -D_GLIBCXX_ASSERT -ffunction-sections -fdata-sections -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/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 /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 ./header_cassert.exe (timeout = 300)/opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/testsuite/17_intro/header_cassert.cc:1: warning: -ffunction-sections may affect debugging on some targets/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/bits/valarray_array.h:164: warning: inline function 'static void std::_Array_copy_ctor<_Tp, true>::_S_do_it(const _Tp*, const _Tp*, _Tp*) [with _Tp = size_t]' used but never definedoutput is:/opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/testsuit! e/17_intro/header_cassert.cc:1: warning: -ffunction-sections may affec t debugging on some targets/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/bits/valarray_array.h:164: warning: inline function 'static void std::_Array_copy_ctor<_Tp, true>::_S_do_it(const _Tp*, const _Tp*, _Tp*) [with _Tp = size_t]' used but never definedFAIL: 17_intro/header_cassert.cc (test for excess errors)Excess errors:/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/bits/valarray_array.h:164: warning: inline function 'static void std::_Array_copy_ctor<_Tp, true>::_S_do_it(const _Tp*, const _Tp*, _Tp*) [with _Tp = size_t]' used but never definedExecuting on host: /opt/build/dave/gcc-4.0.0/objdir/gcc/g++ -shared-libgcc -B/opt/build/dave/gcc-4.0.0/objdir/gcc/ -nostdinc++ -L/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/src -L/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/src/.libs -B/home/dave/opt/gnu/gcc/gcc-4.0.0/powerpc-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/include -isystem /home/dave/opt/gnu/gcc/gcc-4.0.0/powerpc-ibm-aix4.3.3.0/sys-include -g -O2 -D_GLIBCXX_ASSERT -ffunction-sections -fdata-sections -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/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 /opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/testsuite/18_support/numeric_limits.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 ./numeric_limits.exe (timeout = 300)/opt/build/! dave/gcc-4.0.0/gcc/libstdc++-v3/testsuite/18_support/numeric_limits.cc :1: warning: -ffunction-sections may affect debugging on some targets/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:289: warning: inline function 'static _Tp std::numeric_limits<_Tp>::min() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:291: warning: inline function 'static _Tp std::numeric_limits<_Tp>::max() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:294: warning: inline function 'static _Tp std::numeric_limits<_Tp>::epsilon() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:296: warning: inline function 'static _Tp std::numeric_limits<_Tp>::round_error() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:298: warning: inline functio! n 'static _Tp std::numeric_limits<_Tp>::infinity() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:300: warning: inline function 'static _Tp std::numeric_limits<_Tp>::quiet_NaN() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:303: warning: inline function 'static _Tp std::numeric_limits<_Tp>::signaling_NaN() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:307: warning: inline function 'static _Tp std::numeric_limits<_Tp>::denorm_min() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/bits/valarray_array.h:164: warning: inline function 'static void std::_Array_copy_ctor<_Tp, true>::_S_do_it(const _Tp*, const _Tp*, _Tp*) [with _Tp = size_t]' used but never definedoutput is:/opt/bui! ld/dave/gcc-4.0.0/gcc/libstdc++-v3/testsuite/18_support/numeric_limits .cc:1: warning: -ffunction-sections may affect debugging on some targets/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:289: warning: inline function 'static _Tp std::numeric_limits<_Tp>::min() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:291: warning: inline function 'static _Tp std::numeric_limits<_Tp>::max() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:294: warning: inline function 'static _Tp std::numeric_limits<_Tp>::epsilon() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:296: warning: inline function 'static _Tp std::numeric_limits<_Tp>::round_error() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:298: warning: inline func! tion 'static _Tp std::numeric_limits<_Tp>::infinity() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:300: warning: inline function 'static _Tp std::numeric_limits<_Tp>::quiet_NaN() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:303: warning: inline function 'static _Tp std::numeric_limits<_Tp>::signaling_NaN() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/limits:307: warning: inline function 'static _Tp std::numeric_limits<_Tp>::denorm_min() [with _Tp = A<B>]' used but never defined/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/bits/valarray_array.h:164: warning: inline function 'static void std::_Array_copy_ctor<_Tp, true>::_S_do_it(const _Tp*, const _Tp*, _Tp*) [with _Tp = size_t]' used but never definedFAIL: 18_suppor! t/numeric_limits.cc (test for excess errors)etc.
Dave, I think that the problem with _S_do_it is an entirely separate bug. In particular, V3 builds with -fno-inline-templates, but does not use -fno-implicit-inline-templates. The _S_do_it function is inline. Since AIX does not have weak symbols, we probably make that function have internal linkage in the library, which causes the link failures you're seeing. To confirm that, would you please send me the preprocessed version of both valarray-inst.cc and header_cassert.cc, together with the cc1plus command-line used on AIX to compile each? Thanks, -- Mark
Subject: Re: [4.0/4.1 Regression] Undefined symbol: vtable for __cxxabiv1::__vmi_class_type_info "mmitchel at gcc dot gnu dot org" <gcc-bugzilla@gcc.gnu.org> writes: | Dave, I think that the problem with _S_do_it is an entirely separate bug. In | particular, V3 builds with -fno-inline-templates, but does not use | -fno-implicit-inline-templates. The _S_do_it function is inline. Since AIX | does not have weak symbols, we probably make that function have internal linkage | in the library, which causes the link failures you're seeing. Death to obscure flags! -- Gaby
Subject: Re: [4.0/4.1 Regression] Undefined symbol: vtable for __cxxabiv1::__vmi_class_type_info > Somehow missing from bugzilla is this comment from Dave: I believe that it's actually there. I used Konqueror for the paste and it did something wierd with white space and line wraps. Dave
Subject: Re: [4.0/4.1 Regression] Undefined symbol: vtable for __cxxabiv1::__vmi_class_type_info > To confirm that, would you please send me the preprocessed version of both > valarray-inst.cc and header_cassert.cc, together with the cc1plus command-line > used on AIX to compile each? Here are the files. Dave
Created attachment 8523 [details] valarray-inst.ii.gz
Created attachment 8524 [details] header_cassert.ii.gz
Subject: Re: [4.0/4.1 Regression] Undefined symbol: vtable for __cxxabiv1::__vmi_class_type_info > ------- Additional Comments From mmitchel at gcc dot gnu dot org 2005-04-04 01:30 ------- > Dave, I think that the problem with _S_do_it is an entirely separate bug. In > particular, V3 builds with -fno-inline-templates, but does not use > -fno-implicit-inline-templates. The _S_do_it function is inline. Since AIX > does not have weak symbols, we probably make that function have internal linkage > in the library, which causes the link failures you're seeing. Just a note, the failures were caused by "used but never defined" warnings. I didn't look at all the fails but I didn't see any link failures with your latest patch. Dave
Subject: Re: [4.0/4.1 Regression] Undefined symbol: vtable for __cxxabiv1::__vmi_class_type_info > Dave, I think that the problem with _S_do_it is an entirely separate bug. In > particular, V3 builds with -fno-inline-templates, but does not use > -fno-implicit-inline-templates. The _S_do_it function is inline. Since AIX > does not have weak symbols, we probably make that function have internal linkage > in the library, which causes the link failures you're seeing. The _S_do_it reference appears in a .stabx directive: .stabx "_Array_copy_ctor<size_t,true>:Tt1478=s1_S_do_it::1479=f-11:_ZNSt16_Array_copy_ctorImLb1EE8_S_do_itEPKmS2_Pm;2A?;;",0,140,0 This looks like PR 19212. Dave
Dave -- Thanks for clarifying that you are only seeing warning messages. That indicates that I've probably fixed the original bug, but there is some kind of secondary bug. I will see if I can reproduce. -- Mark
Dave -- I suspect that there is some PCH involvement here. In particular, the warnings you're seeing while compiling header_cassert are very surprising, in that the preprocessed source for that file does not contain the string "_S_do_it". So, I think the problem is related to PCH. To fix that, I'll need a test case that I can reproduce in a cross environment; i.e., preprocessed source that I can turn into a PCH, and then some use of the PCH that produces the warnings. In any case, I'm going to test, and then check in, the latest patch, as lots of link-time warnings is better than link failures. -- Mark
Subject: Re: [4.0/4.1 Regression] Undefined symbol: vtable for __cxxabiv1::__vmi_class_type_info > ------- Additional Comments From mmitchel at gcc dot gnu dot org 2005-04-05 06:49 ------- > Dave -- > > I suspect that there is some PCH involvement here. In particular, the warnings > you're seeing while compiling header_cassert are very surprising, in that the > preprocessed source for that file does not contain the string "_S_do_it". So, I > think the problem is related to PCH. To fix that, I'll need a test case that I > can reproduce in a cross environment; i.e., preprocessed source that I can turn > into a PCH, and then some use of the PCH that produces the warnings. > > In any case, I'm going to test, and then check in, the latest patch, as lots of > link-time warnings is better than link failures. The warnings are from GCC: ginyu% grep "used but never defined" *.c decl2.c: cp_warning_at ("inline function %qD used but never defined", decl); You could be right that this is a PCH problem and possibly configuring with --disable-libstdcxx-pch would help. Dave
Subject: Re: [4.0/4.1 Regression] Undefined symbol: vtable for __cxxabiv1::__vmi_class_type_info dave at hiauly1 dot hia dot nrc dot ca wrote: > The warnings are from GCC: Right; I wrote "link-time warnings" for no good reason; I meant "compile-time warnings". > ginyu% grep "used but never defined" *.c > decl2.c: cp_warning_at ("inline function %qD used but never defined", decl); > > You could be right that this is a PCH problem and possibly configuring > with --disable-libstdcxx-pch would help. I'd be interested to know if it does.
Subject: Bug 19159 CVSROOT: /cvs/gcc Module name: gcc Changes by: mmitchel@gcc.gnu.org 2005-04-05 15:40:18 Modified files: gcc/cp : ChangeLog decl2.c Log message: PR c++/19159 * decl2.c (import_export_decl): Use non-COMDAT external linkage for virtual tables, typeinfo, etc. that will be emitted in only one translation unit on systems without weak symbols. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&r1=1.4688&r2=1.4689 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/decl2.c.diff?cvsroot=gcc&r1=1.772&r2=1.773
I have checked in the patch to resolve the link failures, but I will leave this bug open until we've had a chance to analyze the warnings.
(In reply to comment #28) > I have checked in the patch to resolve the link failures, but I will leave this > bug open until we've had a chance to analyze the warnings. I would think this is the same as PR 20584 where there is a testcase but nobody has reduced it since it has to do with "#pragma implementation" and if you get rid of all the file markers aka "# file line", it goes away.
Subject: Re: [4.0/4.1 Regression] Undefined symbol: vtable for __cxxabiv1::__vmi_class_type_info > > You could be right that this is a PCH problem and possibly configuring > > with --disable-libstdcxx-pch would help. > > I'd be interested to know if it does. Definite progress: <http://gcc.gnu.org/ml/gcc-testresults/2005-04/msg00345.html> The problems that may be related to this PR are: 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 -ffunction-sections -fdata-sections -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-aix 4.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/g cc/libstdc++-v3/libsupc++ -I/opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/include/b ackward -I/opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/testsuite /opt/build/dave/g cc-4.0.0/gcc/libstdc++-v3/testsuite/ext/bitmap_allocator/check_allocate_max_size .cc -L/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/./libstdc++-v 3/testsuite -lv3test -lm -o ./check_allocate_max_size.exe (timeout = 300) /opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/testsuite/ext/bitmap_allocator/check_ allocate_max_size.cc:1: warning: -ffunction-sections may affect debugging on some targets ld: 0711-317 ERROR: Undefined symbol: __gnu_cxx::bitmap_allocator<int>::_S_block _size 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 -ffunction-sections -fdata-sections -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-aix 4.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/g cc/libstdc++-v3/libsupc++ -I/opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/include/b ackward -I/opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/testsuite /opt/build/dave/g cc-4.0.0/gcc/libstdc++-v3/testsuite/ext/bitmap_allocator/check_deallocate_null.c c -L/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/./libstdc++-v3/ testsuite -lv3test -lm -o ./check_deallocate_null.exe (timeout = 300) /opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/testsuite/ext/bitmap_allocator/check_ deallocate_null.cc:1: warning: -ffunction-sections may affect debugging on some targets ld: 0711-317 ERROR: Undefined symbol: __gnu_cxx::bitmap_allocator<int>::_S_last_ dealloc_index ld: 0711-317 ERROR: Undefined symbol: __gnu_cxx::bitmap_allocator<int>::_S_block_size 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 -ffunction-sections -fdata-sections -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-aix 4.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/g cc/libstdc++-v3/libsupc++ -I/opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/include/b ackward -I/opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/testsuite /opt/build/dave/g cc-4.0.0/gcc/libstdc++-v3/testsuite/ext/mt_allocator/check_allocate_big_per_type .cc -L/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/./libstdc++-v 3/testsuite -lv3test -lm -o ./check_allocate_big_per_type.exe (timeout = 30 0) /opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/testsuite/ext/mt_allocator/check_allo cate_big_per_type.cc:1: warning: -ffunction-sections may affect debugging on som e targets /opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/ext /mt_allocator.h: In static member function 'static _PoolTp<false>& __gnu_cxx::__ mt_alloc() [with _Tp = test01()::value_type, _Poolp = test01()::policy_type]' /opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/testsuite/ext/mt_allocator/check_allo cate_big_per_type.cc:45: instantiated from here /opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/ext /mt_allocator.h:498: warning: sorry: semantics of inline function static data 'c onst size_t __align' are wrong (you'll wind up with multiple copies) /opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/ext /mt_allocator.h:498: warning: you can work around this by removing the initial izer 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 -ffunction-sections -fdata-sections -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-aix 4.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/g cc/libstdc++-v3/libsupc++ -I/opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/include/b ackward -I/opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/testsuite /opt/build/dave/g cc-4.0.0/gcc/libstdc++-v3/testsuite/ext/mt_allocator/deallocate_global-4.cc -L/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/./libstdc++-v3/testsuite -lv3test -lm -o ./deallocate_global-4.exe (timeout = 300) /opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/testsuite/ext/mt_allocator/deallocate_global-4.cc:1: warning: -ffunction-sections may affect debugging on some targets /opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/ext/mt_allocator.h: In static member function 'static _PoolTp<false>& __gnu_cxx::__per_type_pool_policy<_Tp, _PoolTp, false>::_S_get_pool() [with _Tp = value_t, _PoolTp = __gnu_cxx::__pool]': /opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/ext /mt_allocator.h:656: instantiated from '__gnu_cxx::__mt_alloc<_Tp, _Poolp>::__ mt_alloc() [with _Tp = value_t, _Poolp = policy_type]' /opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/testsuite/ext/mt_allocator/deallocate _global-4.cc:78: instantiated from here /opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/ext /mt_allocator.h:498: warning: sorry: semantics of inline function static data 'c onst size_t __align' are wrong (you'll wind up with multiple copies) /opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/ext /mt_allocator.h:498: warning: you can work around this by removing the initial izer /opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/ext /mt_allocator.h: In static member function 'static _PoolTp<false>& __gnu_cxx::__ per_type_pool_policy<_Tp, _PoolTp, false>::_S_get_pool() [with _Tp = std::_List_ node<value_t>, _PoolTp = __gnu_cxx::__pool]': /opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/ext /mt_allocator.h:663: instantiated from '__gnu_cxx::__mt_alloc<_Tp, _Poolp>::__ mt_alloc(const __gnu_cxx::__mt_alloc<_Tp1, _Poolp1>&) [with _Tp1 = value_t, _Poo lp1 = policy_type, _Tp = std::_List_node<value_t>, _Poolp = __gnu_cxx::__per_typ e_pool_policy<std::_List_node<value_t>, __gnu_cxx::__pool, false>]' /opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/bit s/stl_list.h:327: instantiated from 'std::_List_base<_Tp, _Alloc>::_List_base( const _Alloc&) [with _Tp = value_t, _Alloc = allocator_type]' /opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/bit s/stl_list.h:458: instantiated from 'std::list<_Tp, _Alloc>::list(const typena me std::_List_base<_Tp, _Alloc>::allocator_type&) [with _Tp = value_t, _Alloc = allocator_type]' /opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/testsuite/ext/mt_allocator/deallocate _global-4.cc:78: instantiated from here /opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/ext /mt_allocator.h:498: warning: sorry: semantics of inline function static data 'c onst size_t __align' are wrong (you'll wind up with multiple copies) /opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/libstdc++-v3/include/ext /mt_allocator.h:498: warning: you can work around this by removing the initial izer 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 -ffunction-sections -fdata-sections -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-aix 4.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/g cc/libstdc++-v3/libsupc++ -I/opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/include/b ackward -I/opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/testsuite /opt/build/dave/g cc-4.0.0/gcc/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/map1.cc -L/opt/build/dave/gcc-4.0.0/objdir/powerpc-ibm-aix4.3.3.0/./libstdc++-v3/testsuite -lv3test -lm -o ./map1.exe (timeout = 300) /opt/build/dave/gcc-4.0.0/gcc/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/map1.cc:1: warning: -ffunction-sections may affect debugging on some targets ld: 0711-317 ERROR: Undefined symbol: Internal::X<0>::primes
See: http://gcc.gnu.org/ml/libstdc++/2005-04/msg00152.html for analysis of the: sorry: semantics of inline function static data 'const size_t __align' are wrong (you'll wind up with multiple copies) warnings.
The remaining failures are all either due to (a) defects in the V3 testsuite, or (b) defects in V3 itself, or (c) semi-spurious warnings in the C++ front end. Postponed until GCC 4.0.1.
Postponed until 4.0.2.
According to the thread starting with the reference in Comment #31, this is just a spurious warning on systems without weak symbols. As such, it's never going to be release-critical. The two leading proposals were made for resolving the problem: (1) use a dynamic initialization on systems without weak symbols, or (2) warn only if the static variable is actually addressed, as otherwise the fact that there are multiple copies doesn't matter. I agree with Jason that (2) is the best option, and it should be relatively easy to implement, given that we already mark things as addressed; we could just move the warning to that location.
This issue will not be resolved in GCC 4.1.0; retargeted at GCC 4.1.1.
Will not be fixed in 4.1.1; adjust target milestone to 4.1.2.
Open regression with no activity since February 14. Ping?
Subject: Re: [4.0/4.1/4.2/4.3 Regression] Undefined symbol: vtable for __cxxabiv1::__vmi_class_type_info > Open regression with no activity since February 14. Ping? No update from my side. I don't usually build and test the AIX port, so I'm not aware if there's been any progress. I was asked by a client to work on trying to improve the C++ support in 4.x. At the moment, they are still using 3.4.3. Dave
Downgraded to P4 based on Comment #34.
I am trying to use g++ 4.0.0 on AIX 5.3 and have run into this problem and also the problem reported in bug 18257. What recommendation do you have for using g++ on AIX? Should I go back to an earlier version, or has this problem been resolved in the 4.2.2 version?
Closing 4.1 branch.
I saw Dave C's post. I am also using 4.0.0 on AIX, and seeing this problem. I'm attempting to build Firebird SQL open source. What recommendation do you have for using g++ on AIX? Should I go back to an earlier version, or where has this problem been resolved? Thanks!
Closing 4.2 branch.
GCC 4.3.4 is being released, adjusting target milestone.
Mark, I'm assuming you have no plans to work on this? If so, please unassign yourself from this bug. Can anyone reconfirm this bug for GCC 4.4 and/or GCC 4.5?
Subject: Re: [4.3/4.4/4.5 Regression] Undefined symbol: vtable for __cxxabiv1::__vmi_class_type_info > Can anyone reconfirm this bug for GCC 4.4 and/or GCC 4.5? I think this bug should be closed. While the bug may not be fixed, I can't currently reconfirm. This report arose from work I did several years ago. Dave
Closed at request of submitter.