robert@swanee.ee.uwa.oz.au (Roberto Togneri) (03/20/91)
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@swanee.ee.uwa.oz.au
root@itnsg1.cineca.it (Valter Cavecchia) (03/20/91)
We tried here too to install g++ 1.39. I don't know the details but I'm sure that the only test that doesn't work seems to be the one regarding file I/O (asserting read-only status of a file and so on). The person that did the installation told me that he forced g++ to use the SGI version of malloc instead of the GNU one. Hope this helps, valter. p.s. I will give more details when the "installer" will come back here, next week, I think. -- --------------------------------------------------------------------------- | Valter V. Cavecchia | Bitnet: cavecchi@itncisca | | Centro di Fisica del C.N.R. | Internet: root@itnsg1.cineca.it |