Bug 19159 - [4.3/4.4/4.5 Regression] Undefined symbol: vtable for __cxxabiv1::__vmi_class_type_info
Summary: [4.3/4.4/4.5 Regression] Undefined symbol: vtable for __cxxabiv1::__vmi_class...
Status: RESOLVED WORKSFORME
Alias: None
Product: gcc
Classification: Unclassified
Component: c++ (show other bugs)
Version: 4.0.0
: P4 normal
Target Milestone: 4.3.5
Assignee: Mark Mitchell
URL:
Keywords: diagnostic
Depends on: 20584
Blocks:
  Show dependency treegraph
 
Reported: 2004-12-26 16:26 UTC by John David Anglin
Modified: 2010-03-21 16:47 UTC (History)
3 users (show)

See Also:
Host:
Target: powerpc-*-aix4.3.3.0
Build:
Known to work:
Known to fail: 4.0.4
Last reconfirmed: 2006-02-12 17:54:06


Attachments
Proposed patch (597 bytes, patch)
2004-12-27 19:14 UTC, Mark Mitchell
Details | Diff
Proposed patch (851 bytes, patch)
2005-01-06 21:37 UTC, Mark Mitchell
Details | Diff
Proposed patch. (1.23 KB, patch)
2005-04-01 06:24 UTC, Mark Mitchell
Details | Diff
Preprocessed AIX 4.3.3 source file (5.36 KB, application/octet-stream)
2005-04-02 16:06 UTC, John David Anglin
Details
Preprocessed AIX 4.3.3 source file (3.17 KB, application/octet-stream)
2005-04-02 16:07 UTC, John David Anglin
Details
valarray-inst.ii.gz (97.48 KB, application/x-gunzip)
2005-04-04 02:53 UTC, dave
Details
header_cassert.ii.gz (401 bytes, application/x-gunzip)
2005-04-04 02:53 UTC, dave
Details

Note You need to log in before you can comment on or make changes to this bug.
Description John David Anglin 2004-12-26 16:26:17 UTC
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
Comment 1 Mark Mitchell 2004-12-27 19:14:36 UTC
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
Comment 2 dave 2004-12-27 20:42:04 UTC
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
Comment 3 John David Anglin 2004-12-28 21:38:53 UTC
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
Comment 4 Mark Mitchell 2005-01-06 21:37:45 UTC
Created attachment 7888 [details]
Proposed patch

Dave, would you mind testing with this revision to the patch?

Thanks!
Comment 5 dave 2005-01-06 23:04:54 UTC
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
Comment 6 Mark Mitchell 2005-01-07 08:17:53 UTC
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.


Comment 7 John David Anglin 2005-01-08 22:57:19 UTC
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.
Comment 8 John David Anglin 2005-01-09 00:44:35 UTC
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
 
Comment 9 Mark Mitchell 2005-04-01 06:23:34 UTC
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
Comment 10 Mark Mitchell 2005-04-01 06:24:20 UTC
Created attachment 8506 [details]
Proposed patch.
Comment 11 John David Anglin 2005-04-02 15:47:19 UTC
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.
Comment 12 John David Anglin 2005-04-02 16:06:17 UTC
Created attachment 8512 [details]
Preprocessed AIX 4.3.3 source file
Comment 13 John David Anglin 2005-04-02 16:07:24 UTC
Created attachment 8513 [details]
Preprocessed AIX 4.3.3 source file
Comment 14 Mark Mitchell 2005-04-04 01:26:35 UTC
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.
Comment 15 Mark Mitchell 2005-04-04 01:30:23 UTC
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
Comment 16 Gabriel Dos Reis 2005-04-04 01:58:24 UTC
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
Comment 17 dave 2005-04-04 02:13:38 UTC
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
Comment 18 dave 2005-04-04 02:53:49 UTC
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
Comment 19 dave 2005-04-04 02:53:50 UTC
Created attachment 8523 [details]
valarray-inst.ii.gz
Comment 20 dave 2005-04-04 02:53:50 UTC
Created attachment 8524 [details]
header_cassert.ii.gz
Comment 21 dave 2005-04-04 03:07:52 UTC
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
Comment 22 dave 2005-04-04 03:21:34 UTC
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
Comment 23 Mark Mitchell 2005-04-05 06:39:47 UTC
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
Comment 24 Mark Mitchell 2005-04-05 06:49:50 UTC
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
Comment 25 dave 2005-04-05 12:06:43 UTC
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
Comment 26 Mark Mitchell 2005-04-05 15:20:11 UTC
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.

Comment 27 GCC Commits 2005-04-05 15:40:28 UTC
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

Comment 28 Mark Mitchell 2005-04-05 15:46:28 UTC
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.
Comment 29 Andrew Pinski 2005-04-05 16:30:10 UTC
(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.
Comment 30 dave 2005-04-06 02:15:00 UTC
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



Comment 31 Mark Mitchell 2005-04-17 04:31:45 UTC
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.
Comment 32 Mark Mitchell 2005-04-17 04:57:05 UTC
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.
Comment 33 Mark Mitchell 2005-07-06 16:52:52 UTC
Postponed until 4.0.2.
Comment 34 Mark Mitchell 2005-10-31 02:08:04 UTC
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.
Comment 35 Mark Mitchell 2006-02-24 00:25:31 UTC
This issue will not be resolved in GCC 4.1.0; retargeted at GCC 4.1.1.
Comment 36 Mark Mitchell 2006-05-25 02:32:22 UTC
Will not be fixed in 4.1.1; adjust target milestone to 4.1.2.
Comment 37 Steven Bosscher 2007-12-16 23:17:04 UTC
Open regression with no activity since February 14.  Ping?
Comment 38 dave 2007-12-17 02:02:10 UTC
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
Comment 39 Mark Mitchell 2007-12-17 02:07:28 UTC
Downgraded to P4 based on Comment #34.
Comment 40 Dave C 2008-02-07 19:39:41 UTC
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?
Comment 41 Joseph S. Myers 2008-07-04 16:47:31 UTC
Closing 4.1 branch.
Comment 42 Bill Oliver 2008-10-31 13:30:05 UTC
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!
Comment 43 Joseph S. Myers 2009-03-31 16:43:14 UTC
Closing 4.2 branch.
Comment 44 Richard Biener 2009-08-04 12:26:12 UTC
GCC 4.3.4 is being released, adjusting target milestone.
Comment 45 Steven Bosscher 2010-03-21 12:14:47 UTC
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?
Comment 46 dave 2010-03-21 14:03:23 UTC
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
Comment 47 Mark Mitchell 2010-03-21 16:47:08 UTC
Closed at request of submitter.