*BSD News Article 7635


Return to BSD News archive

Newsgroups: comp.unix.bsd
Path: sserve!manuel.anu.edu.au!munnari.oz.au!spool.mu.edu!uunet!mcsun!Germany.EU.net!pcsbst!lotus!lotus!jkh
From: jkh@esel.lotus.com (Jordan K Hubbard)
Subject: Re: GNUCC 2.3.1 Available  [AND WHAT YOU NEED TO DO TO MAKE IT WORK]
Organization: Lotus Ireland
Date: Thu, 5 Nov 1992 09:04:46 GMT
Message-ID: <JKH.92Nov5100446@esel.lotus.com>
Lines: 50
In-Reply-To: hand@spc9.jpl.nasa.gov's message of Tue, 3 Nov 1992 10: 01:08 GMT
References: <1992Nov3.100108.27631@burns.jpl.nasa.gov>
Sender: news@lotus.com

	Anyone try it yet?  I think I'll give it a try...

Yes.

You'll need to do the following things, though:

1. Deal with enough ansi'isms to gag a buzzard.  This means changing
   the various includes of <ansi.h> to <machine/ansi.h> (or link ansi.h
   in you /usr/include, whatever your preferences).  You'll also need
   to #undef _ANSI_H in <stdio.h> or you won't pick up the size_t and
   wchar_t types, for some reason.  This one is strange and I'm looking
   into it - someone is defining _ANSI_H.

   It also means hacking things to make sure that ptrdiff_t gets defined
   and va_list gets declared as the GCC internal type properly - I'm being
   deliberately vague on all this because I don't much like the way I've
   gotten this to happen at the moment (hack hack) and I'm looking at some way
   of neatening it up to where it follows some ANSI standard or other,
   just as soon as I figure out what that is.  There are enough existing
   examples o go on that any reasonably competent person should be able to
   figure out what to do.

2. More seriously, you need to make sure that the assembler comment character
   is '#', not '/', and that APP_ON and NO_APP [sic] are set to "#APP" and
   "#NO_APP", respectively.  These are NOT defined correctly in i386unx.h
   so you'll need to redefine them in i386bsd.h.  Symptoms of your not having
   done this will be "Garbage character .. blah" messages from the assembler
   while you're compiling stuff from libgcc2.c.

   You'll also need to turn YES_UNDERSCORES on since the gas assembler
   prepends underscores.  Symptoms of not doing that will be gazillions of
   undefined symbols when you try to link your first stage1 cpp.


3. For some reason, the new enquire.c doesn't compile with the gcc 2.x
   anymore and you'll need to compile it with the old compiler (1.39) if
   you want to be able to get further.  There's some floating point expression
   in there that's 'out of range' and I have yet to find out why - the tagged
   expression looks reasonable enough (and I've tried different values for
   DBL_MIN and DBL_MAX but they're not the culprits this time).  I don't know
   a whole lot about floating point, I'm afraid, so I'm not really the one
   to fix this properly.  I think floating point handling under 386BSD is
   sort of generally buggered anyway, so I'm not sure putting much effort
   into just the compiler is going to net you much.

After doing all this, you should have a bootstrappable gcc 2.3.1.  I'm
going to try compiling all of XFree86 1.1 with it tonite - I'll report
back on how it works (or doesn't).

					Jordan
			PCS Computer Systeme GmbH, Munich, West Germany
	UUCP:		pyramid!pcsbst!gj gj@meepmeep.pcs.com
	EUNET:		unido!pcsbst!gj