	   
Last modified: Mon Dec  6 22:15:09 1993

For GPC-1.0* (2.5.6)
and GCC version 2.5.6

This is a short installation quide for the gnu pascal compiler:

	0) @@@ NOTE: (for sparc users)
	   If you have a SPARC machine, you should install the patch
	   at the end of this file to make value parameter arrays
	   work. The fix will be included in some future GCC
	   version. It has no effect for C (or C++ code), as arrays
	   are never passed by value in those languages.  You need to
	   compile GCC again (or perhaps it is enough to compile files
	   calls.c and function.c and re-link. If you have an old gpc
	   version you should also remove those objects; sparch.h
	   file modifications do not cause recompilation here).

	1) compile gcc. It must be the same version as the one GPC is
	   implemented with.

	   Leave the objects in place, since GPC will directly load
	   most of the GCC object files.

	  Install the GNU C compiler. At least install it so that the
	  "xgcc" program will be able to locate the libgcc.a file with
	  "xgcc --print-libgcc-file-name" command. This is to find
	  out where gpc Makefile should put libgpc.a and gpc1.

	2) cd to gpc object directory. It should not be
	   the same as the GPC source directory. You'll need
	   a make that understands VPATH variable. GNU Make does.

	   I heard something breaks if you compile in the source
	   directory -> don't do it.

	   Gpc will later be integrated to the gcc distribution
	   and then will compile like the other GNU compilers.

	3) In the gpc object directory, run the "configure" program
	   from gpc source directory. 

	   Do not use "--prefix" flag unless you have to. If you do not
	   use it, gpc will install itself to the same directory where
	   gcc has been installed before.

	   To make this easy, I use the shell script DOCONF.example to
	   configure gpc.

	   This shell script gives the --gccsrc and --gccdir
	   switches to gpc configure program. To use it, you should
	   create file GCC-VERSION that contains only the version
	   number of gcc (it's used in the pathnames), e.g. 2.5.6

	   The configure script then generates a Makefile to your
	   current directory from the Makefile.in in the distribution.

	   Note that the gpc configure script does not want to
	   have the usual host-vendor-system spec, since GPC is
	   compiled for the same system than GCC was.

	4) Say "make -n" to see if everything is ok.

	5) After it is, you just say "make" to make the compiler
	   and run time system.
	  
	6) The run time system is quite portable, but I have not
	   tested it on a pure System V, and it may require
	   some modifications. My current development system is a
	   i486 Mach 3.0 + BSD single server.

	   For alpha (2.4.5): If you compile with "cc", config.h has
	   some incompatible prototypes unless __STDC__ is defined.  I
	   compiled the run time system with the following flags:
		 make CC="cc -std1" 
		   or
		 make CC=cc MY_CFLAGS="-D__STDC__"

	7) When everything compiles, you can verify what the 
	   "make -n install" command does, and if you are satisfied
	   run it without the -n option to install the compiler (gpc1),
	   front end (gpc), run time system (libgpc.a) to the same
	   place where gcc was installed.

	   It is sort of stupid to have a separate incarnation
	   of gcc.c; the difference now is that "gpc"
	   also searches from library "libgpc.a and -lm".
	   In addition gcc.c specifies the interface to the
	   Pascal compiler (gpc1). This command will vanish when
	   "gcc" knows how to compile Pascal programs.

	8) While compiling, browse through COPYING, README, GPC.NOTES
	   and PROBLEMS to see what you are getting.

	9) If you make modifications/bug fixes, *please* send
	   them back to me so that we can make this a better compiler.

						Juki
						jtv@hut.fi

*---------------------------------------------------------------------------*
 jtv@hut.fi                               Jukka Virtanen
 Jukka.Virtanen@hut.fi                    Helsinki University of Technology
 juki@hut.fi                              Computing Centre
                                          SF-02150, Espoo, FINLAND
				          tel. +358 0 4514315
					  Fax. +358 0 464788

-----------------------------------------------------------------------------

Fix to config/sparc/sparch.h for ARRAY_TYPE value parameters.

*** sparc.h.orig	Mon Dec  6 15:52:37 1993
--- sparc.h	Mon Dec  6 21:34:52 1993
***************
*** 870,876 ****
     quad-precision floats by invisible reference.  */
  #define FUNCTION_ARG_PASS_BY_REFERENCE(CUM, MODE, TYPE, NAMED)		\
    ((TYPE && (TREE_CODE (TYPE) == RECORD_TYPE				\
! 	    || TREE_CODE (TYPE) == UNION_TYPE))				\
     || (MODE == TFmode))
  
  /* Define the information needed to generate branch and scc insns.  This is
--- 870,877 ----
     quad-precision floats by invisible reference.  */
  #define FUNCTION_ARG_PASS_BY_REFERENCE(CUM, MODE, TYPE, NAMED)		\
    ((TYPE && (TREE_CODE (TYPE) == RECORD_TYPE				\
! 	    || TREE_CODE (TYPE) == UNION_TYPE				\
!     	    || TREE_CODE (TYPE) == ARRAY_TYPE))				\
     || (MODE == TFmode))
  
  /* Define the information needed to generate branch and scc insns.  This is
