shared c++ lib on powerpc-ibm-aix4.1.5.0. Done by hand!
Paul Maragakis
plm@mpq.mpg.de
Mon Dec 8 11:24:00 GMT 1997
>
> Paul Maragakis wrote:
> > Get a list of the exported symbols:
> >
> > cd objdir/libraries/libstdc++/
> > for i in `cat piclist`; do \
> > nm -BChg $i | grep " D " | cut -c14- >> libnewstdc++.exp; \
> > done
> >
> > Link the shared object:
> >
> > ld -o libnewstdc++.so `cat piclist` -bE:libnewstdc++.exp -bM:SRE \
> > -lm -L [path to egcs gcc library ...gcc-lib/powerpc-ibm... ]
> > -lgcc -lc
> >
> > Put into an archive so that linking goes with normal procedures:
> >
> > ar qv libnewstdc++.a libnewstdc++.so
>
> You are not correct, because linking a shared C++ library needs
> additional code for global constructors/destructors calls. This
> extra code is generated by collect2 routine, but current implementation
> is not correct.
>
> Andrey.
>
Anyhow, these are the testsuite results with the broken hand
implementation ;-) (I will try your patch Andrey, thanx a lot).
Notice that all fails on libio and libstdc++ are on strings, which I
cannot help but correlate to the fact that nm could not operate on the
instantiation file for the string class, so nm pic/cstrmain.o returns
pic/cstrmain.o: 0654-206 Cannot process the symbol table.
I guess the patch correctly gets all symbols.
Just my 2 cent tip,
--
Paul
Testresults for egcs-1.0, configured with --enable-shared on
powerpc-ibm-aix4.1.5.0. Broken hand-linked libraries for all
instances of libstdc++.
=== gcc Summary ===
# of expected passes 4869
# of unexpected failures 14
# of expected failures 5
# of unsupported tests 7
/afs/ipp-garching.mpg.de/u/plm/ftp/egcs-1.0/obj_shr_dir/gcc/xgcc version egcs-2.90.21 971202 (egcs-1.00 release)
FAIL: gcc.c-torture/compile/920501-4.c, -O2
FAIL: gcc.c-torture/compile/920501-4.c, -O2 -fomit-frame-pointer -finline-functions
FAIL: gcc.c-torture/compile/920501-4.c, -O2 -fomit-frame-pointer -finline-functions -funroll-loops
FAIL: gcc.c-torture/compile/920501-4.c, -O2 -fomit-frame-pointer -finline-functions -funroll-all-loops
FAIL: gcc.c-torture/execute/931004-11.c execution, -O0
FAIL: gcc.c-torture/execute/931004-11.c execution, -O1
FAIL: gcc.c-torture/execute/931004-11.c execution, -O2
FAIL: gcc.c-torture/execute/931004-12.c execution, -O0
FAIL: gcc.c-torture/execute/931004-12.c execution, -O1
FAIL: gcc.c-torture/execute/931004-12.c execution, -O2
FAIL: gcc.c-torture/execute/931004-12.c execution, -O2 -fomit-frame-pointer -finline-functions
FAIL: gcc.c-torture/execute/931004-12.c execution, -O2 -fomit-frame-pointer -finline-functions -funroll-loops
FAIL: gcc.c-torture/execute/931004-12.c execution, -O2 -fomit-frame-pointer -finline-functions -funroll-all-loops
FAIL: gcc.c-torture/execute/complex-5.c execution, -O2 -fomit-frame-pointer -finline-functions
=== g++ Summary ===
# of expected passes 3396
# of unexpected failures 2
# of unexpected successes 3
# of expected failures 82
# of untested testcases 6
/afs/rzg.mpg.de/u/plm/ftp/egcs-1.0/obj_shr_dir/gcc/testsuite/../xgcc version egcs-2.90.21 971202 (egcs-1.00 release)
FAIL: g++.jason/thunk3.C (test for excess errors)
FAIL: g++.law/virtual3.C (test for excess errors)
XPASS: g++.jason/destruct3.C - (test for bogus messages, line 38)
XPASS: g++.mike/dyncast1.C Execution test
XPASS: g++.mike/dyncast2.C Execution test
=== g77 Summary ===
# of expected passes 132
/afs/ipp-garching.mpg.de/u/plm/ftp/egcs-1.0/obj_shr_dir/gcc/g77 version egcs-2.90.21 971202 (egcs-1.00 release)
=== libio Summary ===
# of expected passes 37
# of unexpected failures 1
# of expected failures 2
FAIL: tiomisc.cc compilation
=== libstdc++ Summary ===
# of expected passes 24
# of unexpected failures 2
# of expected failures 4
FAIL: tstring.cc compilation
FAIL: tstring.cc -O compilation
More information about the Gcc
mailing list