> < ^ Date: Sat, 12 Nov 1994 03:47:00 -0500
> < ^ From: James McCarron <jmccarro@mercator.math.uwaterloo.ca >
< ^ Subject: Re: Re: GAP on Solaris 2.3

Martin Schoenert writes:

...

'gcc' does not seem to cause any problems. Unfortunately for our user in
Zimbabwe, getting GNU C would be a major undertaking.

Walnut Creek CDROM (info@cdrom.com) delivers very quickly. I got
alot of GNU source and Solaris binaries on CDROM from them (including gcc),
and it only took 3 days from California to Canada. Prices seem reasonable
too, and they serve world wide, as I recall.

The problems you had in 'system.c' were probably caused by a conflict
between the declaration of 'signal' in 'system.c' and the Solaris include
files. In this case just building with
'make COPTS=-DSYS_HAS_SIGNAL_PROTO' should also solve it.
Could you check, whether this is true?

Well I gave it a try, but this did not work for me. The
trouble I had was with conflicting prototypes for time. Here is the
make target I used:

>       @echo "'sun-sparc-solaris2.3-gcc' for SUN under Solaris2.3(SunOS5.3) with gcc 2.6"
274a276,280
> sun-sparc-solaris2.3-gcc:
>       @$(MAKE) system.o   CC=gcc  CFLAGS="$(COPTS)  -O6 -DSYS_IS_USG -DSYS_HAS_TIME_PROTO -DSOLARIS2"
>       @$(MAKE) gap        CC=gcc  CFLAGS="$(COPTS)  -O6"  SYS_FILE=system.o  LOPTS="$(LOPTS)"

(The rest of the diff is just the RCS $Id: 2.html,v 1.2 2004/04/21 15:05:23 felsch Exp $ field and a modified clean
target.)

The reason for the '-DSOLARIS2' is that I had to omit a couple of
prototypes in 'system.c'. Here is part of a context diff of
system.c to illustrate the change I made:

***************
*** 1478,1486 ****
--- 1478,1489 ----
  #ifndef SYS_HAS_SIGNAL_PROTO            /* ANSI/TRAD decl. from H&S 19.6   */
  extern  sig_handler_t * signal P(( int, sig_handler_t * ));
  extern  int             getpid P(( void ));
+ #ifndef SOLARIS2
  extern  int             kill P(( int, int ));
  #endif
+ #endif

+
  #ifndef SYS_HAS_READ_PROTO              /* UNIX decl. from 'man'           */
  extern  int             read P(( int, char *, int ));
  extern  int             write P(( int, char *, int ));
***************
*** 2431,2437 ****
--- 2434,2442 ----
  #ifndef SYS_HAS_SIGNAL_PROTO            /* ANSI/TRAD decl. from H&S 19.6   */
  extern  sig_handler_t * signal P(( int, sig_handler_t * ));
  extern  int             getpid P(( void ));
+ #ifndef SOLARIS2
  extern  int             kill P(( int, int ));
+ #endif
  #endif
#ifndef SYS_TIME_H                      /* time functions                  */

I confess I do not know why this was necessary, but it did work.
I should point out that this is from patch level 0, not patch
level 1, which I have yet to load onto my Sparc.
I hope this information will be of some help to you or to
our friend in Zimbabwe. If there is anything else I can tell you
please let me know.

Cheers!

James


> < [top]