[gnu.g++.bug] G++ 1.34.0+, sun4-os4

eichin@ATHENA.MIT.EDU (Mark W. Eichin) (04/08/89)

gcc and g++ 1.34.0 built and compiled fine under Sun3/Os3.5, including
most of the patches sent out to the list (although I haven't yet
"refreshed" the sources to 1.34.2.)

I just got a Sun4 running OS4.0.1, and built GCC without a hitch,
stages compared fine, g++ built cleanly (also config'd sun4-os4). I
went and tried to build libg++ (also clean) and the test files (the
first actual executable files to be built with the G++ compiler) and
got "crt0+.o contains non external relocatable ..." (or something like
that; I don't have the machine here, and I didn't write it down...)

Has anybody seen this before? It seems that people on the net are
running this combination, so it is probably some pilot error on my
part. Send me email, I'll summarize to the net if I get interesting
answers. (I didn't see this mentioned in g++.texinfo, though if I get
indications that other people are having this problem, I'll suggest it
go under "common Errors" :-)

Congratulations, though, on having what looks like the *only* C++
compiler for the Sun 4...
					Mark Eichin
					<eichin@athena.mit.edu>

tiemann@YAHI.STANFORD.EDU (Michael Tiemann) (04/08/89)

I used to get 

> "crt0+.o contains non external relocatable ..." (or something like
> that; I don't have the machine here, and I didn't write it down...)

when I tried linking crt0+.o which was compiled with a 68020 or a VAX
compiler.  Run `file' on that file, and see if it tells you its really
a sparc object file.  Use the -v option to see where it is really
finding the crt0+.o file.

Michael

eichin@ATHENA.MIT.EDU (Mark W. Eichin) (04/11/89)

I was getting
> "crt0+.o contains non external relocatable ..." (or something like
> that; I don't have the machine here, and I didn't write it down...)
when trying to link the libg++ tests, with G++ 1.34.0+ configged for
sun4-os4. Michael Tiemann recognized these symptoms as:
>when I tried linking crt0+.o which was compiled with a 68020 or a VAX
>compiler.  Run `file' on that file, and see if it tells you its really
>a sparc object

This diagnosis was close enough to point me in the right direction:
"config" is not enough! there are lines in the makefile (which perhaps
should be ifdefs in ld.c?) with -DTARGET=SUN3 and -DSUN=3 which need
to be hand tweaked (well, comment out the Sun3 line, uncomment the
Sun4 line) when moving form Sun3 sources to Sun4 sources. I had
forgotten to do this when doing the config... 

So, it works, C++ for the Sun4 is a reality, though the configuration
could be automated a little more (though frankly I'd rather see
Multiple Inheritence :-) so maybe a reminder of this line (ok, if I
missed it put it in boldface :-) should be in g++.texinfo.

					Thanks, Mark Eichin
					<eichin@athena.mit.edu>

rfg@MCC.COM (Ron Guilmette) (04/12/89)

Dear Mark,

In a recent posting to bug-g++ you wrote:

>So, it works, C++ for the Sun4 is a reality, though the configuration
>could be automated a little more...

Look at the Makefile for G++ 1.34.2.  Michael T. has added some stuff which
I suggested which does in fact make the selection of proper options for
the compilation of ld.c and crt0.c entirely automatic.  Hopefully, this
constitutes a local (minor) reversal of entropy.


// Ron Guilmette  -  MCC  -  Experimental Systems Kit Project
// 3500 West Balcones Center Drive,  Austin, TX  78759  -  (512)338-3740
// ARPA: rfg@mcc.com
// UUCP: {rutgers,uunet,gatech,ames,pyramid}!cs.utexas.edu!pp!rfg