This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/13391] AIX: collect2 emits bad code with duplicated symbols
- From: "ajd at gentrack dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 4 Mar 2004 05:56:53 -0000
- Subject: [Bug target/13391] AIX: collect2 emits bad code with duplicated symbols
- References: <20031212191310.13391.greed@pobox.com>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From ajd at gentrack dot com 2004-03-04 05:56 -------
(In reply to comment #25)
> libstdc++.a archive only contains one file: the shared object.
> If one upgrades GCC and the library major version number changes,
> one can place both shared objects in the archive, with the older shared
> object marked F_LOADONLY so that it is not used for linking. However,
> both shared objects are marked F_SHROBJ.
> What other files are you seeing in the libstdc++.a archive?
> David
dump -a /gencore/gcc-3.3.2-p2g/lib/libstdc++.a
***Archive Header***
Member Name Date Uid Gid Mode Size
libstdc++.so.5 Mar 05 06:20:59 2004 0 0 000755 0x00870f78
bitset.o Mar 05 06:15:16 2004 7 0 000644 0x0002cd18
codecvt.o Mar 05 06:15:19 2004 7 0 000644 0x00030b1a
complex_io.o Mar 05 06:15:25 2004 7 0 000644 0x0006ff3a
concept-inst.o Mar 05 06:15:30 2004 7 0 000644 0x00061aee
ctype.o Mar 05 06:15:33 2004 7 0 000644 0x00035f8a
ext-inst.o Mar 05 06:15:38 2004 7 0 000644 0x00051e08
fstream.o Mar 05 06:15:41 2004 7 0 000644 0x00033056
fstream-inst.o Mar 05 06:15:51 2004 7 0 000644 0x000b8690
functexcept.o Mar 05 06:15:54 2004 7 0 000644 0x0002e72c
globals.o Mar 05 06:15:57 2004 7 0 000644 0x0002d738
io-inst.o Mar 05 06:16:02 2004 7 0 000644 0x000588ec
ios.o Mar 05 06:16:06 2004 7 0 000644 0x000409c6
istream-inst.o Mar 05 06:16:15 2004 7 0 000644 0x000e62e8
limits.o Mar 05 06:16:16 2004 7 0 000644 0x00018afc
locale.o Mar 05 06:16:20 2004 7 0 000644 0x000533f6
locale-inst.o Mar 05 06:16:52 2004 7 0 000644 0x0032c0e0
localename.o Mar 05 06:16:58 2004 7 0 000644 0x0006317c
misc-inst.o Mar 05 06:17:02 2004 7 0 000644 0x0004c6d4
ostream-inst.o Mar 05 06:17:09 2004 7 0 000644 0x000965d6
sstream-inst.o Mar 05 06:17:20 2004 7 0 000644 0x000f6dd0
stdexcept.o Mar 05 06:17:22 2004 7 0 000644 0x0002c624
stl-inst.o Mar 05 06:17:24 2004 7 0 000644 0x0002014c
streambuf-inst Mar 05 06:17:28 2004 7 0 000644 0x0004d1cc
string-inst.o Mar 05 06:17:33 2004 7 0 000644 0x0008f094
strstream.o Mar 05 06:17:40 2004 7 0 000644 0x0006dbf8
valarray-inst. Mar 05 06:17:44 2004 7 0 000644 0x0003d644
vterminate.o Mar 05 06:17:44 2004 7 0 000644 0x0000fc8a
wstring-inst.o Mar 05 06:17:50 2004 7 0 000644 0x0009af18
codecvt_member Mar 05 06:17:52 2004 7 0 000644 0x0002b330
collate_member Mar 05 06:17:55 2004 7 0 000644 0x0002a770
ctype_members. Mar 05 06:17:58 2004 7 0 000644 0x0002daaa
messages_membe Mar 05 06:18:00 2004 7 0 000644 0x0002a1d6
monetary_membe Mar 05 06:18:03 2004 7 0 000644 0x0002ce3a
numeric_member Mar 05 06:18:05 2004 7 0 000644 0x0002b210
time_members.o Mar 05 06:18:08 2004 7 0 000644 0x0002c826
basic_file.o Mar 05 06:18:11 2004 7 0 000644 0x00026b80
c++locale.o Mar 05 06:18:13 2004 7 0 000644 0x0002f1ea
stubs.o Mar 05 06:21:00 2004 0 0 000644 0x000071d2
signbit.o Mar 05 06:21:00 2004 0 0 000644 0x0000778e
signbitf.o Mar 05 06:21:00 2004 0 0 000644 0x0000778c
signbitl.o Mar 05 06:21:00 2004 0 0 000644 0x000077f8
del_op.o Mar 05 06:21:00 2004 0 0 000644 0x000007e8
del_opnt.o Mar 05 06:21:00 2004 0 0 000644 0x00000860
del_opv.o Mar 05 06:21:00 2004 0 0 000644 0x000007ca
del_opvnt.o Mar 05 06:21:00 2004 0 0 000644 0x00000842
eh_alloc.o Mar 05 06:21:00 2004 0 0 000644 0x0000fe68
eh_aux_runtime Mar 05 06:21:00 2004 0 0 000644 0x0000fd16
eh_catch.o Mar 05 06:21:00 2004 0 0 000644 0x0000fe7e
eh_exception.o Mar 05 06:21:00 2004 0 0 000644 0x00002900
eh_globals.o Mar 05 06:21:00 2004 0 0 000644 0x0000f6be
eh_personality Mar 05 06:21:00 2004 0 0 000644 0x00014b34
eh_terminate.o Mar 05 06:21:00 2004 0 0 000644 0x000102b0
eh_throw.o Mar 05 06:21:00 2004 0 0 000644 0x00001e04
eh_type.o Mar 05 06:21:00 2004 0 0 000644 0x000010da
guard.o Mar 05 06:21:00 2004 0 0 000644 0x00000ffc
new_handler.o Mar 05 06:21:00 2004 0 0 000644 0x000015aa
new_op.o Mar 05 06:21:00 2004 0 0 000644 0x0000f218
new_opnt.o Mar 05 06:21:00 2004 0 0 000644 0x00000e0a
new_opv.o Mar 05 06:21:00 2004 0 0 000644 0x00000996
new_opvnt.o Mar 05 06:21:00 2004 0 0 000644 0x00000868
pure.o Mar 05 06:21:00 2004 0 0 000644 0x00005726
tinfo.o Mar 05 06:21:00 2004 0 0 000644 0x000111ac
tinfo2.o Mar 05 06:21:00 2004 0 0 000644 0x0000d6d8
vec.o Mar 05 06:21:00 2004 0 0 000644 0x0000692c
cxa_demangle.o Mar 05 06:21:00 2004 0 0 000644 0x0001f088
dyn-string.o Mar 05 06:21:00 2004 0 0 000644 0x00009d5c
---
This was the section of bootstrap where it was built:
...
generating symbol list for `libstdc++.la'
nm -B -X32_64 -
BCpg .libs/bitset.o .libs/codecvt.o .libs/complex_io.o .libs/concept-
inst.o .libs/ctype.o .libs/ext-inst.o .libs/fstream.o .libs/fstream-
inst.o .libs/functexcept.o .libs/globals.o .libs/io-
inst.o .libs/ios.o .libs/istream-
inst.o .libs/limits.o .libs/locale.o .libs/locale-
inst.o .libs/localename.o .libs/misc-inst.o .libs/ostream-inst.o .libs/sstream-
inst.o .libs/stdexcept.o .libs/stl-inst.o .libs/streambuf-inst.o .libs/string-
inst.o .libs/strstream.o .libs/valarray-inst.o .libs/vterminate.o .libs/wstring-
inst.o .libs/codecvt_members.o .libs/collate_members.o .libs/ctype_members.o .li
bs/messages_members.o .libs/monetary_members.o .libs/numeric_members.o .libs/tim
e_members.o .libs/basic_file.o .libs/c++locale.o ../libmath/.libs/libmath.a ../
libsupc++/.libs/libsupc++convenience.a | awk '{ if ((($2 == "T") || ($2 == "D")
|| ($2 == "B")) && (substr($3,1,1) != ".")) { print $3 } }' | sort -u
> .libs/libstdc++.exp
/data/ad/gcc-3.3.2-p2g-build/gcc/xgcc -shared-libgcc -B/data/ad/gcc-3.3.2-p2g-
build/gcc/ -nostdinc++ -L/data/ad/gcc-3.3.2-p2g-build/powerpc-ibm-
aix5.2.0.0/pthread/libstdc++-v3/src -L/data/ad/gcc-3.3.2-p2g-build/powerpc-ibm-
aix5.2.0.0/pthread/libstdc++-v3/src/.libs -B/gencore/gcc-3.3.2-p2g/powerpc-ibm-
aix5.2.0.0/bin/ -B/gencore/gcc-3.3.2-p2g/powerpc-ibm-aix5.2.0.0/lib/ -
isystem /gencore/gcc-3.3.2-p2g/powerpc-ibm-aix5.2.0.0/include -pthread -
shared -
o .libs/libstdc++.so.5 .libs/bitset.o .libs/codecvt.o .libs/complex_io.o .libs/
concept-inst.o .libs/ctype.o .libs/ext-inst.o .libs/fstream.o .libs/fstream-
inst.o .libs/functexcept.o .libs/globals.o .libs/io-
inst.o .libs/ios.o .libs/istream-
inst.o .libs/limits.o .libs/locale.o .libs/locale-
inst.o .libs/localename.o .libs/misc-inst.o .libs/ostream-inst.o .libs/sstream-
inst.o .libs/stdexcept.o .libs/stl-inst.o .libs/streambuf-inst.o .libs/string-
inst.o .libs/strstream.o .libs/valarray-inst.o .libs/vterminate.o .libs/wstring-
inst.o .libs/codecvt_members.o .libs/collate_members.o .libs/ctype_members.o .li
bs/messages_members.o .libs/monetary_members.o .libs/numeric_members.o .libs/tim
e_members.o .libs/basic_file.o .libs/c++locale.o -L/data/ad/gcc-3.3.2-p2g-
build/powerpc-ibm-aix5.2.0.0/pthread/libstdc++-v3/src -L/data/ad/gcc-3.3.2-p2g-
build/powerpc-ibm-aix5.2.0.0/pthread/libstdc++-v3/src/.libs -
lm ../libmath/.libs/libmath.a -lm ../libsupc++/.libs/libsupc++convenience.a -
lm -L/data/ad/gcc-3.3.2-p2g-build/gcc/pthread -L/data/ad/gcc-3.3.2-p2g-
build/gcc -lgcc_s_pthread -lpthreads -lc -lgcc_s_pthread -lm -lgcc_s_pthread -
lpthreads -lc -lgcc_s_pthread -Wl,-G -Wl,-bE:.libs/libstdc++.exp -Wl,-
bnoentry ${wl}-berok
ar -X32_64 rc .libs/libstdc++.a .libs/libstdc++.so.5
rm -fr .libs/libstdc++.lax
mkdir .libs/libstdc++.lax
rm -fr .libs/libstdc++.lax/libmath.a
mkdir .libs/libstdc++.lax/libmath.a
(cd .libs/libstdc++.lax/libmath.a && ar -X32_64 x /data/ad/gcc-3.3.2-p2g-
build/powerpc-ibm-aix5.2.0.0/pthread/libstdc++-
v3/src/../libmath/.libs/libmath.a)
rm -fr .libs/libstdc++.lax/libsupc++convenience.a
mkdir .libs/libstdc++.lax/libsupc++convenience.a
(cd .libs/libstdc++.lax/libsupc++convenience.a && ar -X32_64 x /data/ad/gcc-
3.3.2-p2g-build/powerpc-ibm-aix5.2.0.0/pthread/libstdc++-
v3/src/../libsupc++/.libs/libsupc++convenience.a)
ar -X32_64 rc .libs/libstdc++.a bitset.o codecvt.o complex_io.o concept-inst.o
ctype.o ext-inst.o fstream.o fstream-inst.o functexcept.o globals.o io-inst.o
ios.o istream-inst.o limits.o locale.o locale-inst.o localename.o misc-inst.o
ostream-inst.o sstream-inst.o stdexcept.o stl-inst.o streambuf-inst.o string-
inst.o strstream.o valarray-inst.o vterminate.o wstring-inst.o
codecvt_members.o collate_members.o ctype_members.o messages_members.o
monetary_members.o numeric_members.o time_members.o basic_file.o
c++locale.o .libs/libstdc++.lax/libmath.a/stubs.o .libs/libstdc++.lax/libmath.a/
signbit.o .libs/libstdc++.lax/libmath.a/signbitf.o .libs/libstdc++.lax/libmath.a
/signbitl.o .libs/libstdc++.lax/libsupc++convenience.a/del_op.o .libs/libstdc++
.lax/libsupc++convenience.a/del_opnt.o .libs/libstdc++.lax/libsupc++convenience.
a/del_opv.o .libs/libstdc++.lax/libsupc++convenience.a/del_opvnt.o .libs/libstdc
++.lax/libsupc++convenience.a/eh_alloc.o .libs/libstdc++.lax/libsupc++convenienc
e.a/eh_aux_runtime.o .libs/libstdc++.lax/libsupc++convenience.a/eh_catch.o .libs
/libstdc++.lax/libsupc++convenience.a/eh_exception.o .libs/libstdc++.lax/libsupc
++convenience.a/eh_globals.o .libs/libstdc++.lax/libsupc++convenience.a/eh_perso
nality.o .libs/libstdc++.lax/libsupc++convenience.a/eh_terminate.o .libs/libstdc
++.lax/libsupc++convenience.a/eh_throw.o .libs/libstdc++.lax/libsupc++convenienc
e.a/eh_type.o .libs/libstdc++.lax/libsupc++convenience.a/guard.o .libs/libstdc++
.lax/libsupc++convenience.a/new_handler.o .libs/libstdc++.lax/libsupc++convenien
ce.a/new_op.o .libs/libstdc++.lax/libsupc++convenience.a/new_opnt.o .libs/libstd
c++.lax/libsupc++convenience.a/new_opv.o .libs/libstdc++.lax/libsupc++convenienc
e.a/new_opvnt.o .libs/libstdc++.lax/libsupc++convenience.a/pure.o .libs/libstdc+
+.lax/libsupc++convenience.a/tinfo.o .libs/libstdc++.lax/libsupc++convenience.a/
tinfo2.o .libs/libstdc++.lax/libsupc++convenience.a/vec.o .libs/libstdc++.lax/li
bsupc++convenience.a/cxa_demangle.o .libs/libstdc++.lax/libsupc++convenience.a/d
yn-string.o
ranlib .libs/libstdc++.a
rm -fr .libs/libstdc++.lax
creating libstdc++.la
(cd .libs && rm -f libstdc++.la && ln -s ../libstdc++.la libstdc++.la)
gmake[7]: Leaving directory `/data/ad/gcc-3.3.2-p2g-build/powerpc-ibm-
aix5.2.0.0/pthread/libstdc++-v3/src'
...
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13391