On Thu, 23 Jul 1998, Alastair Reid wrote:
> I've not heard of this problem before but I've noticed that the
> latest gcc/egcs are much fussier than gcc 2.7.2 (which is what most
> people seem to use). Can you mail us the output of these commands
> (or appropriate equivalents):
>
> gcc -v
gcc version 2.7.2.2+myc1
> uname -a
NetBSD scdesantis.ne.mediaone.net 1.3.2 NetBSD 1.3.2 (GHOST-PRIEST) #1:
Tue Jul 14 21:45:20 EDT 1998
[EMAIL PROTECTED]:/home/xiamin/building/usr/src/sys/arch/mac68k/compile/GHOST-PRIEST
mac68k
> cat hugs/src/version.h
/* --------------------------------------------------------------------------
* Version number
* ------------------------------------------------------------------------*/
/* Is this a major release or not? */
#define MAJOR_RELEASE 1
/* Define this as a string (up to 13 characters) uniquely identifying the
* current version.
* Major releases from Nottingham/Yale are of the form "<month> <year>"
* Minor releases from Nottingham/Yale are of the form "Version YYMMDD"
* Anyone else should use a different format to avoid confusion.
*/
#if MAJOR_RELEASE
#define HUGS_VERSION " June 1998 "
#else
#define HUGS_VERSION "Version 980610"
#endif
>
> Also, you'll find the code that creates global registers in prelude.h
> - you could try commenting it out or deleting it. You'll take a
> performance hit if you do this but I'm not sure how much (does a
> factor of 2 sound right, Mark?)
I'll give that a try, thanks.
>
>
> Alastair
>
> Here's the code in prelude.h that you might need to whack on:
>
> /*---------------------------------------------------------------------------
> * Optimisations:
> *-------------------------------------------------------------------------*/
>
> #ifdef __GNUC__ /* look for GCC 2.x extensions */
> #if __GNUC__ >= 2 && !defined(NeXT) /* NeXT cc lies and says it's 2.x */
>
> /* WARNING: if you use the following optimisations to assign registers for
> * particular global variables, you should be very careful to make sure that
> * storage(RESET) is called after a longjump (usually resulting from an error
> * condition) and before you try to access the heap. The current version of
> * main deals with this using everybody(RESET) at the head of the main read,
> * eval, print loop
> */
>
> #ifdef m68k /* global registers on an m68k */
> #define GLOBALfst asm("a4")
> #define GLOBALsnd asm("a5")
> #define GLOBALsp asm("a3")
> #endif
>
> #ifdef sparc /* global registers on a sparc */
> /* sadly, although the gcc documentation suggests that the following reg */
> /* assignments should be ok, experience shows (at least on Suns) that they */
> /* are not -- it seems that atof() and friends spoil things. */
> /*#define GLOBALfst asm("g5")*/
> /*#define GLOBALsnd asm("g6")*/
> /*#define GLOBALsp asm("g7")*/
> #endif /* sparc */
>
> #endif
> #endif /* defined(__GNUC__) */
>
>
-Simon Raahauge DeSantis
Re: Compiling Hugs on NetBSD-1.3.2
Simon Raahauge DeSantis Fri, 24 Jul 1998 01:34:40 +0200 (MET DST)
