Help configuring g++ 3.3.6 for Sunos 4.1.4

Peter Dufault dufault@hda.com
Tue Jun 27 14:58:00 GMT 2006


How are symbols that are needed and built into libiberty.a supposed  
to be resolved by collect2?  Are they supposed to somehow wind up in  
"-lgcc"?  I'd like a little help configuring this.

I want a cross environment for Sunos4.1.4 for use while moving things  
to a Linux system (don't ask, just believe me).  Using gcc3.3.6 and  
binutils 2.10.1 (the last versions that support this antique without  
too many problems) I've built a cross C that works fine and I've  
ALMOST built a cross g++.

However, there are functions that aren't provided by the native C  
library needed by libstdc++.a.
The configuration process detects these and places them in  
"libiberty.a".  For example, "strtoul" winds up there.

But g++ executables aren't linked to libiberty.a by default.  This  
isn't too bad for things that don't have constructors-destructors and  
I just add "-liberty" to the link line, but for those with them the  
only way I can get things to work is editing the "g++ -v" command  
line and adding -liberty in a convenient place.  For example, for a  
simple "cout << "Hello world" foo.o, I can do this:

/home/dufault/opt/try2/lib/gcc-lib/sparc-sun-sunos4.1.4/3.3.6/ 
collect2 -e start -dc -dp -o foo /home/dufault/opt/try2/lib/gcc-lib/ 
sparc-sun-sunos4.1.4/3.3.6/../../../../sparc-sun-sunos4.1.4/lib/ 
crt0.o -L/home/dufault/opt/try2/lib/gcc-lib/sparc-sun- 
sunos4.1.4/3.3.6 -L/home/dufault/opt/try2/lib/gcc-lib/sparc-sun- 
sunos4.1.4/3.3.6/../../../../sparc-sun-sunos4.1.4/lib foo.o -lstdc++ - 
lm -lgcc -lc -lgcc -liberty -lc

Using this hack I can build executables and copy them over to the Sun  
and run them. Static and dynamic executables, static constructors,  
etc. all seem to work.

But I can't for the life of me figure out how to do it without this  
step, and I'd like "sparc-sun-sunos4.1.4-g++ foo.cc" to create a  
working a.out.

Can someone help?  Here's my config line, I know "-fno-implicit- 
templates" isn't needed but it is there right now.

../../tools/gcc-3.3.6/configure
  --with-gcc-version-trigger=/home/dufault/work/client/cross_sun4_gcc/ 
tools/gcc-3.3.6/gcc/version.c
  --host=i686-pc-linux-gnu
  --prefix=/home/dufault/opt/try2
  --disable-threads --enable-obsolete
  --enable-sjlj-exceptions
  --enable-cxx-flags=-fno-implicit-templates
  --disable-multilib
  --with-headers=/home/dufault/sunos_fixups/include
  --with-libs=/home/dufault/sunos_fixups/lib
  --target=sparc-sun-sunos4.1.4
  --with-gnu-as
  --with-gnu-ld
  --verbose
  --enable-languages=c,c++
  --norecursion

Peter Dufault
HD Associates, Inc.



--
For unsubscribe information see http://sourceware.org/lists.html#faq



More information about the crossgcc mailing list