Installing g++-1.39 on an IRIS + problems

Roberto Togneri robert at swanee.ee.uwa.oz.au
Wed Mar 20 15:03:40 AEST 1991


I have finally managed to get g++-1.39.0 up and running on an iris. Alas it 
fails the make tests that come with libg++-1.39.0. The failures are too many
to describe here, suffice to say it does compile, link and produce executable
binaries (it also passes the "Hello world" test). I'll include information on 
how I installed g++-1.39.0
and maybe somebody out there can tell me what I did wrong or what is wrong
with g++ for mips based machines. 

I know of the OSF version of g++-1.37 which is for mips machines; do make tests 
pass with that version?

I am using a 4D/20 iris running IRIS 3.1d OS. gcc-1.39 was successfully
installed (well I think it was); GNU AS (GAS) and GNU LD were not installed.
The 'collect' program was used with the system ld.


Here is how I got g++-1.39 to work on Silicon Graphics IRIS running
IRIS 3.1d. Some of these steps may be unnecessary but after several
unsuccessful attempts I'm not going to worry but the optimal installation!

1. Install gcc-1.39.
   It is important that the gcc sources are available for g++.

2. You need to create create the cplus-tab.c cplus-tab.h and 
   cplus-tab.out from bison. To install bison you need alloca which
   the IRIS doesn't have. However this may not be necessary if you use
   gcc (?). I just compiled bison on a Sun Sparc. Apparently
   the unix yacc doesn't work. Once these files have been made you can
   remove bison (but keep the sources; you never know). 

2. Edit the g++ Makefile as follows:
    - if you don't have a gcc-test directory edit the TDIR variable to:
	TDIR=../gcc
    - use the COFF 'collect' program by uncommenting the lines:
	COFFLAGS = -DUSE_COLLECT -DEXTENDED_COFF   (line 45)
	all: g++ cc1plus collect # crt0+.o crt1+.o (line 214) 
    - also uncomment:
 	USG_STDIO = -DUSG_STDIO		(line 78)
    - change the collect make lines to (lines 287-294):

collect: collect.c config.h $(LIBDEPS)
	COLLECT_LIBS="-lmld"; \
	if cmp -s tm.h config/tm-encore.h; then \
		COLLECT_OPTIONS='-DUMAX'; \
	else \
		COLLECT_OPTIONS='-DCOLLECT'; \
	fi; \
	$(CC) -o collect $(PROFILE) $$COLLECT_OPTIONS $(CFLAGS) $(INCLUDES) collect.c -lg -lc $$COLLECT_LIBS

    - you must compile g++ using gcc (I had problems with the compiler
      options using the normal unix cc).
    - make any changes to the variables defining the location of the g++ 
      binaries, libraries, etc.

2b. edit collect.c and change the following (I think this is right):

    enum { mips_sections, cur_section };    (line 79)

3. Now follow the steps in the g++ README which includes:
	- running make maketest
 	- running config-g++ (config-g++ iris)
  
4. OK you should now be able to make g++ by typing "make"

5. To install do: make install 

7. Get libg++-1.39.0. It'll test out g++. Edit the Makefile and define both 
USG and COFF_ENCAPSULATE. The bcopy.c in the src directory will have to 
edited (line 5):

     void bcopy (char *source, char *dest, int count)

--
Dr. Roberto Togneri                         Phone: +61-9-380-2535
Dept. of Electrical & Electronic Engineering
The University of Western Australia         Fax:   +61-9-380-1065
NEDLANDS WA 6009 Australia                  Email: robert at swanee.ee.uwa.oz.au



More information about the Comp.sys.sgi mailing list