Diff for /gforth/INSTALL between versions 1.25 and 1.38

version 1.25, 1996/11/07 22:31:31 version 1.38, 2007/12/31 17:34:58
Line 1 Line 1
   Copyright (C) 2003,2007 Free Software Foundation, Inc.
   This file is free documentation; the Free Software Foundation gives
   unlimited permission to copy, distribute and modify it.
   
   
                   Prerequisites
   
 You need gcc version 2.0 or later to compile gforth.  You need gcc version 2.0 or later to compile gforth.
   
   For the (documented) libcc.fs C interface you need a C compiler at
   run-time.
   
   For the (undocumented ) lib.fs C interface you need to install either
   the ffcall libraries or the libffi library.  Libffi comes with recent
   gccs, ffcall can be found on
   
      ftp://ftp.santafe.edu/pub/gnu/ffcall-1.8.tar.gz (USA) 
      ftp://ftp.ilog.fr/pub/Users/haible/gnu/ffcall-1.8.tar.gz (Europe) 
   
   On many architectures (exceptions: 386, PPC, MIPS, Alpha) you need gdb
   at run-time in order for the disassembler to work.
   
   
                   Building and Installing
   
 First, type  First, type
   
 ./configure  ./configure
Line 12  make Line 35  make
   
 Now you can check whether your shiny new Forth system works. Say  Now you can check whether your shiny new Forth system works. Say
   
 make test  make check
   
 You can run some benchmarks with  You can run some benchmarks with
   
Line 24  If everything is all right, you may want Line 47  If everything is all right, you may want
   
 make install  make install
   
 You have to make an entry in the info directory file manually.  
   
 For paper documentation, print gforth.ps (a Postscript file (300dpi  For paper documentation, print gforth.ps (a Postscript file (300dpi
 fonts, i.e., it works, but does not produce best quality on better  fonts, i.e., it works, but does not produce best quality on better
 printers)), or say  printers)), or say
Line 37  documentation in HTML format by typing Line 58  documentation in HTML format by typing
   
 make html  make html
   
 If you prefer plain ASCII documentation, just concatenate the files  If you prefer plain ASCII documentation, you can 
 gforth.info-* ('cat gforth.info-*' under Unix).  
   make doc/gforth.txt
   
   or just concatenate the files gforth.info-* ('cat gforth.info-*' under
   Unix); the result of the latter option is a little worse.
   
   You can find binary distributions, documentation in HTML and plain
   text format and information on known installation problems at
   http://www.complang.tuwien.ac.at/forth/gforth/.
   
   
                 Configuration Options                  Configuration Options
Line 62  configure has the following useful param Line 91  configure has the following useful param
                           the machine.h file. This can cause a good speedup,                            the machine.h file. This can cause a good speedup,
                           but also incorrect code with some gcc versions on                            but also incorrect code with some gcc versions on
                           some processors (default disabled).                            some processors (default disabled).
   --enable-direct-threaded      Force direct threading. This may not work on  
                                 some machines and may cause slowdown on others.  
                                 (default processor-dependent)  
   --enable-indirect-threaded    Force indirect threading. This can cause a  
                                 slowdown on some machines.  
                                 (default processor-dependent)  
   --with-debug     specifies option -g to compile with debug info (default)  
   --without-debug  omits the -g switch and creates smaller images on  
                    machines where strip has problems with gcc style  
                    debugging informations.  
   --help: tells you about other parameters.    --help: tells you about other parameters.
   
 The file Benchres shows which combination of the -enable options we  The file Benchres shows which combination of the -enable options we
Line 87  hierarchy, say Line 106  hierarchy, say
 Moreover, if your GCC is not called gcc (but, e.g., gcc-2.7.1), you  Moreover, if your GCC is not called gcc (but, e.g., gcc-2.7.1), you
 should say so during configuration. E.g.:  should say so during configuration. E.g.:
   
 env CC=gcc-2.7.1 ./configure  ./configure CC=gcc-2.7.1
   
 You can also pass additional options to gcc in this way, e.g., if you  You can also pass additional options to gcc in this way, e.g., if you
 want to generate an a.out executable under Linux with gcc-2.7.0:  want to generate an a.out executable under Linux with gcc-2.7.0:
   
 env "CC=gcc -b i486-linuxaout -V 2.7.0" ./configure  ./configure CC="gcc -b i486-linuxaout -V 2.7.0"
   
 You can change the sizes of the various areas used in the default  You can change the sizes of the various areas used in the default
 image `gforth.fi' by passing the appropriate Gforth command line  image `gforth.fi' by passing the appropriate Gforth command line
 options in the FORTHSIZES environment variable:  options in the FORTHSIZES environment variable:
   
 env "FORTHSIZES=--dictionary-size=256k --data-stack-size=16k --fp-stack-size=16k --return-stack-size=16k --locals-stack-size=16k" ./configure  ./configure "FORTHSIZES=--dictionary-size=256k --data-stack-size=16k --fp-stack-size=15872b --return-stack-size=15k --locals-stack-size=14848b"
   
 The line above reaffirms the default sizes. Note that the locals  The line above reaffirms the default sizes. Note that the locals
 stack area is also used as input buffer stack.  stack area is also used as input buffer stack.
Line 107  If C's "long long" do not work properly Line 126  If C's "long long" do not work properly
 tests involving double-cell numbers fail), you can build Gforth such  tests involving double-cell numbers fail), you can build Gforth such
 that it does not use "long long":  that it does not use "long long":
   
 env ac_cv_sizeof_long_long=0 ./configure  ./configure ac_cv_sizeof_long_long=0
   
   
                           Cross-Installation
   
                         Cross-Configuration  You need a cross-compilation toolchain for your target including gcc
   (2.0 or later).
   
 A few tests made by the configure script do not work in a  The first step in cross-installation is the cross-configuration.  A
   few tests made by the configure script do not work in a
 cross-compilation situation. You have to provide the results of these  cross-compilation situation. You have to provide the results of these
 tests by hand. E.g., if you compile for a 386 architecture processor:  tests by hand. E.g., if you compile for an ARM:
   
 env ac_cv_sizeof_char_p=4 ac_cv_sizeof_short=2 ac_cv_sizeof_int=4 ac_cv_sizeof_long=4 ac_cv_sizeof_long_long=8 ac_cv_c_bigendian=no ./configure  env skipcode=".skip 16" ac_cv_sizeof_char_p=4 ac_cv_sizeof_char=1 \
   ac_cv_sizeof_short=2 ac_cv_sizeof_int=4 ac_cv_sizeof_long=4 \
   ac_cv_sizeof_long_long=8 ac_cv_sizeof_intptr_t=4 ac_cv_sizeof_int128_t=0 \
   ac_cv_c_bigendian=no ./configure CC=arm-elf-gcc --host=arm-linux
   
 The ac_cv_sizeof_... variables give the sizes of various C types;  The ac_cv_sizeof_... variables give the sizes of various C types;
 ac_cv_sizeof_char_p is the same as "sizeof(char*)" in C code. The  ac_cv_sizeof_char_p is the same as "sizeof(char*)" in C code. The
 ac_cv_c_bigendian variable gives the byte order.  ac_cv_c_bigendian variable gives the byte order.  The skipcode
   specifies how to skip 16 bytes in the code (use "skipcode=no" to
   disable skipping and dynamic native code generation).
   
   After the cross-configuration you type
   
   make gforths
   
   This produces the gforth engines for the target.
   
   The next step is to transfer everything to the target; on the target,
   you do
   
   make
   
   to complete building gforth.  If you do not have a make on the target,
   run
   
   make -n
   
   on the host; manually execute on the target the last command output by
   "make -n" (GFORTHD=...); the other commands output by "make -n" are
   not necessary unless you have changed the Gforth sources.  You can
   then check and benchmark Gforth with
   
   make check
   make bench
   
   or equivalent.  Finally, perform
   
   make install
   
   or the equivalent commands on the target.
   
   
                 Preloading installation-specific code                  Preloading installation-specific code
   
 If you want to have some installation-specific files loaded when  If you want to have some installation-specific files loaded when
 Gforth starts (e.g., an assembler for your processor), put commands  Gforth starts (e.g., an assembler for your processor), put commands
 for loading them into /usr/local/share/gforth/site-forth/site-init.fs  for loading them into /usr/local/share/gforth/site-forth/siteinit.fs
 (if the commands work for all architectures) or  (if the commands work for all architectures) or
 /usr/local/lib/gforth/site-forth/site-init.fs (for  /usr/local/lib/gforth/site-forth/siteinit.fs (for
 architecture-specific commands);  architecture-specific commands);
 /usr/local/lib/gforth/site-forth/site-init.fs takes precedence if both  /usr/local/lib/gforth/site-forth/siteinit.fs takes precedence if both
 files are present (unless you change the search path). The file names  files are present (unless you change the search path). The file names
 given above are the defaults; if you have changed the prefix, you have  given above are the defaults; if you have changed the prefix, you have
 to replace "/usr/local" in these names with your prefix.  to replace "/usr/local" in these names with your prefix.
   
 By default, the installation procedure creates an empty  By default, the installation procedure creates an empty
 /usr/local/share/gforth/site-forth/site-init.fs if there is no such  /usr/local/share/gforth/site-forth/siteinit.fs if there is no such
 file.  file.
   
 If you change the site-init.fs file, you should run "make install"  If you change the siteinit.fs file, you should run "make install"
 again for the changes to take effect (Actually, the part of "make  again for the changes to take effect (Actually, the part of "make
 install" starting with "rm gforth.fi" is sufficient).  install" starting with "rm gforth.fi" is sufficient).
   
Line 156  version foo with 'make uninstall VERSION Line 214  version foo with 'make uninstall VERSION
 tells you how to uninstall Gforth completely.  tells you how to uninstall Gforth completely.
   
   
                         A Possible Problem                  Installing Info Files
   
 You need to read this only if you see a message like  Info is the GNU project on-line documentation format. You can read
   info files either from within Emacs (Ctrl-h i) or using the
   stand-alone Info reader, 'info'.
   
 ...  If you use the default install root of '/usr/local' then the info
 The Gforth installer should look into the INSTALL file  files will be installed in '/usr/local/info'.
   
 1) "gforth: Cannot load nonrelocatable image (compiled for address $1234) at address $5678  Many GNU/Linux distributions are set up to put all of their
 The Gforth installer should look into the INSTALL file"  documentation in '/usr/info', in which case you might have to do a
   couple of things to get your environment set up to accommodate files
 Gforth supports both relocatable and fixed-address images. If you load  in both areas:
 normal Forth code and save the image, you get a fixed-address  
 image. Producing a relocatable image is more difficult.  
   
 Therefore, Gforth has only a relocatable image of the kernel  
 (kernel.fi), which is powerful enough to load the rest of  
 Gforth. However, loading the rest takes a noticable amount of time. To  
 avoid this delay (which would occur on every startup), the  
 installation procedure produces an image fixed at an address  
 determined at the Gforth run that produced the image. This  
 fixed-address image is loaded by default. On most OSs this works,  
 because the first chunk of memory is always allocated at the same  
 address. If the address changes, you get the message above.  
   
 An image address change can be caused by a change of the gforth  
 executable, or by a change (upgrade) of the OS; in these cases you  
 just have to rebuild and reinstall the fixed address image with  
   
 rm gforth.fi; make gforth.fi; make install  
   
 If you get such a message with a different address in place of the  
 $5678 each time you try to start gforth, you cannot use fixed-address  
 images on your OS. In this case, send us a message so that we start  
 searching for a comfortable solution to this problem. In the  
 meantime, start gforth with  
   
 gforth -i kernel.fi startup.fs  
   
 If the addresses changes by only a small amount (e.g. by one or two  
 pages), you can fix it by defining FUZZ (in config.h) to a number at  
 least two times the changes you observe (0x4000 is a good idea, this  
 is four 4k pages) and recompile. We do this for the DJGPP port for  
 DOS, because the start address there changes by one or two pages, and  
 it helps us to keep the DOS people happy without investing too much  
 work in a braindead environment.  
   
   
 2) "%s: Checksum of image ($13579b) does not match the executable ($2468a)  
 The Gforth installer should look into the INSTALL file"  
   
 A fixed-address image is not only fixed with respect to its base  
 address, but also with respect to certain addresses in the gforth  
 executable and the threading method. These things are encoded in a  
 checksum.  
   
 If the checksum of the executable and the checksum of the image are  
 not equal, you get the message above. This can be caused, e.g., by  
 trying to run an image produced for a direct threading system on an  
 indirect threaded system.  
   
 Chances are that you unintentionally tried to execute an image from  
 the wrong directory. As a remedy, you can specify Gforth's search  
 path with the "-p" command line option and with the GFORTHPATH  
 environment variable.  
   
 On the other hand, if you need to solve the problem by creating a new  1. Add an INFOPATH environment variable. The easiest place to do
 fixed-address image, you can use the steps described above.  this is '/etc/profile', right next to PATH and MANPATH:
   
   INFOPATH=/usr/local/info:/usr/info
   
   2. Create a file called 'dir' in 'usr/local/info'. Use the file
   '/usr/info/dir' as a template. You can add the line for gforth
   manually, or use '/sbin/install-info' (man install-info for details).

Removed from v.1.25  
changed lines
  Added in v.1.38


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>