-fsquangle

Dimitri PAPADOPOULOS-ORFANOS papadopo@shfj.cea.fr
Tue Nov 24 02:35:00 GMT 1998


I use egcs-1.1b with `-fsquangle' on Solaris 2.5.1 because:
* I want to use Sun's assembler, not GNU's
* I hope object files will be smaller in debug mode

I have built both g++ and libstdc++ with `-fsquangle'.
`-fsquangle' does work with simple examples.
However, I get link-time errors with more complex code:
	g++ -ansi -O3 -fPIC -Wall \
	-o /home/papadopo/aims-1.9/bin/SunOS/dynamic/fast/AimsBundleTracking \
	/home/papadopo/aims-1.9/commandline/AimsBundleTracking/obj.fast/SunOS/tracking.o \
	-L/home/papadopo/aims-1.9/lib/SunOS -laimsfast \
	-L/appli/vidaio/vidaIO-1.3/lib/SunOS -lvidaIOfast \
	-lm -lrpcsvc
	ld: warning: file /appli/vidaio/vidaIO-1.3/lib/SunOS/libvidaIOfast.so: section .stabstr: malformed string table, initial or final byte
	Undefined                       first referenced
	 symbol                             in file
	AimsBorder::InitializeBorder(long, long, long, long)/home/papadopo/aims-1.9/lib/SunOS/libaimsfast.so
	istream & operator>><double>(istream &, complex<double> &)/home/papadopo/aims-1.9/lib/SunOS/libaimsfast.so
	ostream & operator<<<float>(ostream &, complex<float> const &)/home/papadopo/aims-1.9/lib/SunOS/libaimsfast.so
	[...]


1) `libvidaIOfast.so' is a C library compiled and linked with egcs-1.0.2.
   What does `.stabstr: malformed string table, initial or final byte' mean?

2) I realize that `-fsquangle' is still experimental.
   I'd like to send source code to illustrate the problem, but simple
   code such as
   	#include <iostream>
   	#include <complex>
   	main() {
   		complex<float> cx;
   		cout << cx << endl;
   	}
   does compile and link. The same function
   	ostream & operator<<<float>(ostream &, complex<float> const &)
   used in a `libvidaIOfast.so' dynamic library has problems.
   How to give feedback on `-fsquangle'?



More information about the Gcc-bugs mailing list