This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Help configuring g++ 3.3.6 for Sunos 4.1.4


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]