[comp.unix.sysv386] Compiling GNU C 1.38 in SCO Unix System V 3.2

akk@korppi.tut.fi (Kautonen Ari) (01/02/91)

Someone of you may have noticed that my checklist (README-SCO) distributed
with the new GNU C 1.38 package considering the compilation of this package
in SCO Unix System V 3.2 is indeed a false one. It was meant to be used with
the version 1.37.1. This new release has corrected many of the previous
problems and added many more features.

The compilation of this new release is very simple in SCO Unix System V 3.2.
Below you will find the complete compilation checklist for this release.

I hope that the distributors of the GNU C package will replace the old
checklist with the new one if they consider it worth a while.

Ari Kautonen
(akk@tut.fi)

--- checklist follows ---

==============================================================================
============== Checklist from of Ari Kautonen (akk@tut.fi) ===================
==============================================================================
	Compiling GNU C 1.38 in SCO Unix System V 3.2.0 (31 Dec 1990)
==============================================================================

1. Edit Makefile:
	- remove -O from CCLIBFLAGS
	- uncommment CLIB = -lPW
	- uncomment the following lines from 'SysV from SCO'-part:
		RANLIB = :
		CC = rcc
		OLDCC = rcc
	- remove limits.h from USER_H
	- change installation options as you like

2. Run: sh config.gcc i386-sco

3. Add following type-cast to rtl.c line 679

   Old:
   676:	  /* get vector length and allocate it */
   677:	  XVEC (return_rtx, i) = (list_counter
   678:				  ? rtvec_alloc (list_counter)
   679:				  : NULL);

   New:
	  /* get vector length and allocate it */
	  XVEC (return_rtx, i) = (list_counter
				  ? rtvec_alloc (list_counter)
				  : (struct rtvec_def *) NULL);

4. Run: make
	- lots of warnings: ignore -

5. Run: make stage1

6. Run: make "CC=stage1/gcc -Bstage1/"

7. Run: make stage1

8. Run: make "CC=stage1/gcc -O -g -Bstage1/"

9. Run: make install

That's it!

============= End checklist from of Ari Kautonen (akk@tut.fi) ================
Ari Kautonen  (akk@korppi.tut.fi)

chip@tct.uucp (Chip Salzenberg) (01/03/91)

According to akk@korppi.tut.fi (Kautonen Ari):
>2. Run: sh config.gcc i386-sco

It looks like my SCO support for 1.37.1 made it into 1.38.  Excellent!
Now I can stop mailing my patches to a new SCO user each week.  :-)

>3. Add following type-cast to rtl.c line 679
>
>   Old:
>   676:	  /* get vector length and allocate it */
>   677:	  XVEC (return_rtx, i) = (list_counter
>   678:				  ? rtvec_alloc (list_counter)
>   679:				  : NULL);
>
>   New:
>	  /* get vector length and allocate it */
>	  XVEC (return_rtx, i) = (list_counter
>				  ? rtvec_alloc (list_counter)
>				  : (struct rtvec_def *) NULL);

This change is only needed if you neglect to fix SCO's include files,
which have conflicting definitions for NULL.  That's right, SCO can't
even agree within the development staff as to what NULL should be.
<sigh>

The fix is very simple, and it not only fixes this problem, it also
gets rid of many compilation warnings in the bargain.  Just hunt down
all the definitions of NULL in /usr/include and make sure that all of
them define NULL as "0", not "((void *)0)".  Presto!  No more warnings
about "conflicting pointer types".
-- 
Chip Salzenberg at Teltronics/TCT     <chip@tct.uucp>, <uunet!pdn!tct!chip>
"Please don't send me any more of yer scandalous email, Mr. Salzenberg..."
		-- Bruce Becker