[comp.sys.sun] RCS under 4.0.1

gretzky@unison.larc.nasa.gov (Mitch Gretzky) (07/21/89)

>  Date:    9 Jul 89 21:07:34 GMT
>  From:    eho@cognito.princeton.edu (Eric Ho)
>  Subject: RCS under 4.0.1 ??
>
>Has anyone got RCS installed & working correctly under SunOS 4.0.1 ?  I
>got a copy of RCS from uunet last night and when I compiled the thing, it
>barfed at rcsutil.c (saying some illegal pointer types or something).  I'm
>doing this on a Sun-4/110M-16 with a GENERIC kernel.
>

I had the same problem with it on a Sun3/60 under 4.0.1.  I retrieved my
copy from purdue, supposedly the latest version.  Either way,  I found
that the easiest way to get it to compile without error was to use the GNU
c-compiler (gcc1.35).  Now it works just fine.  Don't forget to use the
"-traditional" flag.

Hope this helps.

			-=>gretzky<=-
.mitch
						----------------------------
						gretzky@unison.larc.nasa.gov
						gretzky@eagle.larc.nasa.gov
						mitch@teb.larc.nasa.gov
						----------------------------

eggert@twinsun.com (Paul Eggert) (07/28/89)

gretzky@unison.larc.nasa.gov (Mitch Gretzky) answers
eho@cognito.princeton.edu (Eric Ho)'s question "Has anyone got RCS
installed & working correctly under SunOS 4.0.1?...  [My attempt] barfed
at rcsutil.c (saying some illegal pointer types or something)?" by
writing:

	I found that the easiest way to get it to compile without error was to
	use the GNU c-compiler (gcc1.35).  Now it works just fine.  Don't
	forget to use the "-traditional" flag.

It's cleaner to get the types correct in rcsutil.c.  RCS's src/Makefile says:

	#     Also, set SIGNAL_TYPE to be what your signal() handlers yield.
	#     Old-fashioned signal handlers yield 'int'; the newer ones 'void'.

	SIGNAL_TYPE = int

Change the `int' to `void' and rcsutil.c will compile.

guy@uunet.uu.net (Guy Harris) (07/29/89)

 >>Has anyone got RCS installed & working correctly under SunOS 4.0.1 ?  I
 >>got a copy of RCS from uunet last night and when I compiled the thing, it
 >>barfed at rcsutil.c (saying some illegal pointer types or something).  I'm
 >>doing this on a Sun-4/110M-16 with a GENERIC kernel.
 >
 >I had the same problem with it on a Sun3/60 under 4.0.1.  I retrieved my
 >copy from purdue, supposedly the latest version.  Either way,  I found
 >that the easiest way to get it to compile without error was to use the GNU
 >c-compiler (gcc1.35).  Now it works just fine.  Don't forget to use the
 >"-traditional" flag.

No, the easiest way to get it to compile without error is to read the
configuration instructions - in the Makefile, as pointed out by the
README file:

	...

	7) All sources for RCS are contained in the "src" subdirectory.
	Read the directions in its Makefile to set up the correct compile
	options for building RCS on your system.

and note the following:

	#     Also, set SIGNAL_TYPE to be what your signal() handlers yield.
	#     Old-fashioned signal handlers yield 'int'; the newer ones 'void'.

	SIGNAL_TYPE = int

and note also that SunOS 4.x has new-fangled POSIX-style signal handler
declarations that have handlers returning "void", and change that line to:

	SIGNAL_TYPE = void

trinkle@cs.purdue.edu (Daniel Trinkle) (07/29/89)

>Date:    9 Jul 89 21:07:34 GMT
>From:    eho@cognito.princeton.edu (Eric Ho)
>Subject: RCS under 4.0.1 ??
>
>Has anyone got RCS installed & working correctly under SunOS 4.0.1 ?  I
>got a copy of RCS from uunet last night and when I compiled the thing, it
>barfed at rcsutil.c (saying some illegal pointer types or something).  I'm
>doing this on a Sun-4/110M-16 with a GENERIC kernel.

I already responded to the original poster, but it appears other people
are having the same problem.  In the Makefile, there is an explanation
about declaring the type expected by signal of the signal handler.  On a
Sun runnin SunOS 4.0*, this should be "void", not "int".  It works fine
here with the SunOS compiler.

This is an excerpt from the Makefile:

# 4.  Set the operating system variable OS. If you run on 4.1 BSD, do not
#     define OS:
#     OS  =
#     If you run on USG Unix or UN*X, use:
#     OS  = -DUSG
#     If you run on Version 6 Unix, use:
#     OS  = -DV6
#     If you run on 4.2 or 4.3 BSD, use:
#     OS = -DV4_2BSD
OS        = -DV4_2BSD

#     Also, set SIGNAL_TYPE to be what your signal() handlers yield.
#     Old-fashioned signal handlers yield 'int'; the newer ones 'void'.

SIGNAL_TYPE = int

Daniel Trinkle			trinkle@cs.purdue.edu
Dept. of Computer Sciences	{backbone}!purdue!trinkle
Purdue University		317-494-7844
West Lafayette, IN 47907