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