changeset 538:c3e1fe268e78

*** empty log message ***
author Jim Blandy <jimb@redhat.com>
date Thu, 06 Feb 1992 01:02:59 +0000
parents 3e1b597754d7
children b99d4eb7ed93
files etc/=MACHINES src/callproc.c
diffstat 2 files changed, 254 insertions(+), 177 deletions(-) [+]
line wrap: on
line diff
--- a/etc/=MACHINES	Thu Feb 06 00:58:53 1992 +0000
+++ b/etc/=MACHINES	Thu Feb 06 01:02:59 1992 +0000
@@ -1,19 +1,26 @@
 This is a list of the status of GNU Emacs on various machines and systems.
-Last updated 27 December 1990.
+Last updated 4 March 1991.
+
+For each system and machine, we give the `-opsystem' and `-machine'
+options you should pass to config.emacs to prepare to build Emacs for
+that system/machine.
+
+These options tell Emacs which machine- and system-descriptive files
+to include.  For each `-machine=MACHNAME' option, there exists a file
+`src/m/MACHNAME.h', and for each `-opsystem=OSNAME' option, there
+exists a file `src/s/OSNAME.h'.
 
 Systems:
-  For each type of system, the name of the appropriate s- header file
-  is given.
 
-Berkeley 4.1 (s-bsd4-1.h)
+Berkeley 4.1 (-opsystem=bsd4-1)
 
   Works on vaxes.
 
-Berkeley 4.2 (s-bsd4-2.h)
+Berkeley 4.2 (-opsystem=bsd4-2)
 
   Works on several machines.
 
-Berkeley 4.3 (s-bsd4-3.h)
+Berkeley 4.3 (-opsystem=bsd4-3)
 
   Works, on Vaxes at least.
 
@@ -21,27 +28,27 @@
 
   See under "Intel 386".
 
-System V rel 0 (s-usg5-0.h)
+System V rel 0 (-opsystem=usg5-0)
 
   Works, on Vaxes and 3bxxx's.
   There are some problems in 18.37 due to shortnames/cccp problems:
   use the emacs 17 cpp if you have it.
 
-System V rel 2 (s-usg5-2.h)
+System V rel 2 (-opsystem=usg5-2)
 
   Works on various machines.
   On some (maybe all) machines the library -lPW exists and contains
   a version of `alloca'.  On these machines, to use it, put
      #define HAVE_ALLOCA
      #define LIB_STANDARD -lPW -lc
-  in the m-...h file for the machine.
+  in the src/m/MACHINENAME.h file for the machine.
 
   If you find that the character Meta-DEL makes Emacs crash,
   find where function init_sys_modes in sysdep.c sets sg.c_cc[VQUIT]
   and make it store 7 there.  I have as yet no evidence of whether
   this problem, known in HP-UX, exists in other system V versions.
 
-System V rel 2.2 (s-usg5-2-2.h)
+System V rel 2.2 (-opsystem=usg5-2-2)
 
   In 5.2.2 AT&T undid, incompatibly, their previous incompatible
   change to the way the nlist library is called.  A different s- file
@@ -54,7 +61,7 @@
   NO_REMAP.  It is not yet known whether this applies to all
   machines running 5.2.2.
 
-System V rel 3 (s-usg5-3.h)
+System V rel 3 (-opsystem=usg5-3)
 
   Some versions of this system support ptys and BSD-style sockets.
   On such systems, you should define HAVE_PTYS and HAVE_SOCKETS in config.h.
@@ -62,7 +69,7 @@
   If you want to link Emacs with shared libraries, define
   USG_SHARED_LIBRARIES.
 
-System V rel 4 (s-usg5-4.h)
+System V rel 4 (-opsystem=usg5-4)
 
   Supported, including shared libraries for ELF, but ptys do not
   work because TIOCGPGRP fails to work on ptys.
@@ -75,7 +82,7 @@
   The standard C preprocessor generate xmakefile incorrectly.  However,
   /lib/cpp will work, so use `make CPP=/lib/cpp'.
 
-Ultrix (s-bsd4-2.h)
+Ultrix (-opsystem=bsd4-2)
 
   DEC's Ultrix OS is essentially Berkeley 4.2.  It does not correctly
   implement certain features of 4.3.
@@ -96,11 +103,11 @@
 
   The problem is said to be gone in UWS version 2.1.
 
-Uniplus 5.2 (s-unipl5-2.h)
+Uniplus 5.2 (-opsystem=unipl5-2)
 
   Works, on Dual machines at least.
 
-VMS (s-vms.h)
+VMS (-opsystem=vms)
 
   Works except for certain features (directory listing, dired,
   sending and receiving mail) that use synchronous subprocesses.
@@ -114,34 +121,37 @@
 Xenix
 
   Should work in 18.50, but you will need to edit the files
-  etc/Makefile and src/ymakefile
+  lib-src/Makefile and src/ymakefile
   (see the comments that mention "Xenix" for what to change.)
   Compiling Emacs with -O is said not to work.
 
   If you want Emacs to work with Smail (installed as /usr/bin/smail)
   then add the line   #define SMAIL  to config.h.
 
-  The file etc/XENIX suggests some useful things to do to Xenix
+  The file share-lib/XENIX suggests some useful things to do to Xenix
   to make the Emacs meta key work.
 
 Machines:
-  For each type of machine, the names of the m- and s- header files
-  are given.
 
-Alliant (m-alliant4.h or m-alliant.h or m-alliant1.h; s-bsd4-2.h)
+Alliant (-machine=alliant4, -machine=alliant or -machine=alliant1;
+	 -opsystem=bsd4-2)
 
   18.52 works on system version 4.  Previous Emacs versions were
   known to work on previous system versions.
 
-  Use m-alliant1.h on version 1 of their operating system
-  and use m-alliant.h on version 2 or 3.
-  Use m-alliant4.h on version 4.
+  Use -machine=alliant1 on version 1 of their operating system
+  and use -machine=alliant on version 2 or 3.
+  Use -machine=alliant4 on version 4.
 
-Altos 3068 (m-altos.h; s-usg5-2.h)
+Alliant FX/2800 (-machine=alliant-2800; -opsystem=bsd4-3)
+
+  Known to work with 18.58 and OS version 2.2, compiler version 1.3.
+
+Altos 3068 (-machine=altos; -opsystem=usg5-2)
 
   18.52 is said to work, provided you don't compile unexec.c with -O.
 
-Amdahl UTS (m-amdahl.h; s-usg5-2-2.h)
+Amdahl UTS (-machine=amdahl; -opsystem=usg5-2-2)
 
   Small changes for 18.38 were merged in 18.39.  It is mostly
   working, but at last report a bug sometimes causes Emacs to
@@ -154,21 +164,21 @@
   even worth trying to use it.  Success was obtained with the
   uts native C compiler on uts version 5.2.5.
 
-Apollo running Domain (m-apollo.h; s-bsd4-2.h)
+Apollo running Domain (-machine=apollo; -opsystem=bsd4-2)
 
   18.52 works, to some extent.
   Code for dumping Emacs has been written, but we cannot
   distribute it yet.
   There are reports of bugs in cc -O on this system.
 
-  In etc/Makefile, don't expect emacsclient and emacsserver to
+  In lib-src/Makefile, don't expect emacsclient and emacsserver to
   compile.  You might want to remove them from your makefile.
 
   Supposedly something in dired.c runs into a compiler bug.
-  Paraphrasing the statement should avoid the problem.
-  I havenot yet received word as to the exact statement this is.
+  Paraphrasing the statement should avoid the problem.  I have not yet
+  received word as to the exact statement this is.
 
-AT&T 3b2, 3b5, 3b15, 3b20 (m-att3b.h; s-usg5-2-2.h)
+AT&T 3b2, 3b5, 3b15, 3b20 (-machine=att3b; -opsystem=usg5-2-2)
 
   Emacs will probably not work with certain kernel constants too small. 
 
@@ -189,17 +199,18 @@
   The MAXMEM may also prevent Emacs from running.  The file
   3B-MAXMEM in this directory explains how to increase MAXMEM.
 
-AT&T 7300 or 3b1 (m-7300.h; s-usg5-2-2.h)
+AT&T 7300 or 3b1 (-machine=7300; -opsystem=usg5-2-2)
 
-  18.52 seems to work.  If you have strange troubles with dumping Emacs,
-  delete the last few lines from m-7300.h and recompile.  These lines
-  are supposed to produce a sharable executable.
+  18.52 seems to work.  If you have strange troubles with dumping
+  Emacs, delete the last few lines from -machine=7300 and recompile.
+  These lines are supposed to produce a sharable executable.
 
-  m-7300.h defines SHORTNAMES because operating system versions
+  -machine=7300 defines SHORTNAMES because operating system versions
   older than 3.5 did not support long symbol names.  Version 3.5 does
-  support them, so you can remove the #define SHORTNAMES in that version.
+  support them, so you can remove the #define SHORTNAMES in that
+  version.
 
-Bull sps7 (m-sps7.h; s-usg5-2.h)
+Bull sps7 (-machine=sps7; -opsystem=usg5-2)
 
   Changes partially merged in version 19, but some fixes are probably required.
 
@@ -207,59 +218,66 @@
 
   See "Tahoe".
 
-Celerity (m-celerity.h; s-bsd4-2.h)
+Celerity (-machine=celerity; -opsystem=bsd4-2)
 
   Version 18.49 works.
 
-Clipper (m-clipper.h; ???)
+Clipper (-machine=clipper; ???)
 
   Version 19 has support for some brand of clipper system.
   Note that the Orion 105 is also a clipper, but some system-related
   parameters are different.
 
-Convex (m-convex.h; s-bsd4-3.h)
+Convex (-machine=convex; -opsystem=bsd4-3)
 
   18.53 is supposed to work.
 
-Cubix QBx/386 (m-intel386.h; s-usg5-3.h)
+Cubix QBx/386 (-machine=intel386; -opsystem=usg5-3)
 
   Changes merged in 19.1.  Systems before 2/A/0 may fail to compile etags.c
   due to a compiler bug.
 
-Cydra 5 (m-cydra5.h; s-usg5-3.h)
+Cydra 5 (-machine=cydra5; -opsystem=usg5-3)
 
   18.51 worked in one version of their operating system but stopped
   working in a newer version.  This has not been fixed.
 
-DECstation (m-pmax.h; s-bsd4-2.h)
+DECstation (-machine=pmax; -opsystem=bsd4-2)
 
   Works, as of 18.55.  See under Ultrix for problems using X windows
   on Ultrix.  Note that this is a MIPS machine.
+  For Ultrix versions prior to 4.0, you may need to delete
+  the definition of START_FILES from src/m/pmax.h.
 
-Delta (m-delta.h; s-usg5-3.h)
+Motorola Delta 147 (-machine=delta; -opsystem=usg5-3)
 
   Motorola Delta boxes running System V/68 release 3.
   (tested on sys1147 with SVR3V5).  Changes merged in 19.1.
 
-Dual running System V (m-dual.h; s-usg5-2.h)
+Motorola Delta 187 (-machine=delta88k; -opsystem=usg5-3)
+
+  Machine support added in version 19.
+  HAVE_X_MENU does not work due to lack of insque.
+ 
+Dual running System V (-machine=dual; -opsystem=usg5-2)
 
   As of 17.46, this works except for a few changes
   needed in unexec.c.
 
-Dual running Uniplus (m-dual.h; s-unipl5-2.h)
+Dual running Uniplus (-machine=dual; -opsystem=unipl5-2)
 
   Works, as of 17.51.
 
-Elxsi 6400 (m-elxsi; s-usg5-2.h)
+Elxsi 6400 (-machine=elxsi; -opsystem=usg5-2)
 
   Changes for 12.0 release are in 19.1.
   Dumping should work now.
 
-Encore machine (m-ns16000.h; s-umax.h)
+Encore machine (-machine=ns16000; -opsystem=umax)
 
   This machine bizarrely uses 4.2BSD modified to use the COFF format
   for object files.  Works (as of 18.40).  For the APC processor you
-  must enable two lines at the end of s-umax.h, which are commented
+  must enable two lines at the end of src/s/umax.h, which are commented
   out in the file as distributed.
 
   WARNING: If you compile Emacs with the "-O" compiler switch, you
@@ -269,36 +287,37 @@
   A kernel bug in some system versions causes input characters to be lost
   occasionally.
 
-GEC 93 (m-gec93.h; s-usg5-2.h?)
+GEC 93 (-machine=gec93; -opsystem=usg5-2?)
 
   Changes are partially merged in version 18, but
   certainly require more work.
 
-Gould Power Node (m-gould.h; s-bsd4-2.h or s-bsd4-3.h)
+Gould Power Node (-machine=gould; -opsystem=bsd4-2 or -opsystem=bsd4-3)
 
   18.36 worked on versions 1.2 and 2.0 of the operating system.
 
-  On UTX/32 2.0, use s-bsd4-3.h.
+  On UTX/32 2.0, use -opsystem=bsd4-3.
 
-  On UTX/32 1.2 and UTX/32S 1.0, use s-bsd4-2.h and note that compiling 
-  etc/sorted-doc tickles a compiler bug:  remove the -g flag to cc in the 
-  makefile.
+  On UTX/32 1.2 and UTX/32S 1.0, use -opsystem=bsd4-2 and note that
+  compiling lib-src/sorted-doc tickles a compiler bug: remove the -g
+  flag to cc in the makefile.
 
   UTX/32 1.3 has a bug in the bcopy library routine.  Fix it by 
-  #undef BSTRING in m-gould.h.
+  #undef BSTRING in -machine=gould.
 
   Version 19 incorporates support for releases 2.1 and later of UTX/32.
   A site running a pre-release of 2.1 should #define RELEASE2_1 in config.h.
 
-Gould NP1 (m-gould-np1.h; s-bsd4-3.h)
+Gould NP1 (-machine=gould-np1; -opsystem=bsd4-3)
 
   Version 19 supposedly works.
 
-Honeywell XPS100 (m-xps100.h; s-usg5-2.h)
+Honeywell XPS100 (-machine=xps100; -opsystem=usg5-2)
 
   Config file added in version 19.
 
-HP 9000 series 200 or 300 (m-hp9000s300.h; s-hpux.h or s-bsd4-3.h)
+HP 9000 series 200 or 300 (-machine=hp9000s300;
+                           -opsystem=hpux or -opsystem=bsd4-3)
 
   Version 18 works.
   These machines are 68000-series CPUs running HP-UX
@@ -328,9 +347,9 @@
   that include the `netunam' system call.  This is refered to as
   Network Services (NS/9000) in HP literature.
 
-HP 9000 series 300 running BSD 4.3 (m-hp300bsd.h; s-bsd4-3.h)
+HP 9000 series 300 running BSD 4.3 (-machine=hp300bsd; -opsystem=bsd4-3)
 
-  Version 18.55 works.
+  Version 19.1 works.
 
 HP 9000 series 500: not supported.
 
@@ -338,18 +357,18 @@
   which relocates data in memory during execution of a program,
   and support for it would be difficult to implement.
 
-HP 9000 series 800 (Spectrum) (m-hp9000s800.h; s-hpux.h)
+HP 9000 series 800 (Spectrum) (-machine=hp9000s800; -opsystem=hpux)
 
   These files support HP's Precision Architecture machines
   running HP-UX.  It has been moderately tested on the Series
   840.
 
-High Level Hardware Orion (m-orion.h; s-bsd4-2.h)
+High Level Hardware Orion (-machine=orion; -opsystem=bsd4-2)
 
   This is the original microprogrammed hardware.
-  m- file ought to work.
+  Machine description file ought to work.
 
-High Level Hardware Orion 1/05 (m-orion105.h; s-bsd4-2.h)
+High Level Hardware Orion 1/05 (-machine=orion105; -opsystem=bsd4-2)
 
   Changes merged in 18.52.  This is the one with the Clipper cpu.
   Note that systems which lack NFS need LOAD_AVE_TYPE changed to `double'.
@@ -357,12 +376,16 @@
   C compiler has a bug; it loops compiling eval.c.
   Compile it by hand without optimization.
 
-IBM PS/2 (m-ibmps2-aix.h; s-usg5-2-2.h)
+IBM PS/2 (-machine=ibmps2-aix; -opsystem=usg5-2-2 or -opsystem=usg5-3)
 
   Changes merged in version 19.  You may need to copy
   /usr/lib/samples/hft/hftctl.c to the Emacs src directory.
 
-IBM RS/6000 (m-ibmrs6000.h; s-aix3-1.h)
+  Use -opsystem=usg5-3 on AIX 1.2.
+  -opsystem=usg5-2-2 should work on either AIX 1.1 or 1.2, but may not
+  work with certain new X window managers, and may be suboptimal.
+
+IBM RS/6000 (-machine=ibmrs6000; -opsystem=aix3-1)
 
   Changes merged in version 19.
 
@@ -372,10 +395,12 @@
   but every few days or weeks it changes to a new steady state.
   When this happens, the dumped Emacs data file becomes invalid.
 
-IBM RT/PC (m-ibmrt.h or m-ibmrt-aix.h; s-bsd4-2.h or s-usg5-2-2.h)
+IBM RT/PC (-machine=ibmrt or -machine=ibmrt-aix;
+	   -opsystem=bsd4-2 or -opsystem=usg5-2-2)
 
   18.52 works on both operating systems.
-  Use s-bsd-4-2.h for the 4.2-like system and s-usg5-2-2.h for AIX.
+  Use -opsystem=bsd4-2 for the 4.2-like system and -opsystem=usg5-2-2
+  for AIX.
 
   On BSD, if you have trouble, try compiling with a different compiler.
 
@@ -385,7 +410,8 @@
 
   window.c must not be compiled with -O on AIX.
 
-Integrated Solutions `Optimum V' (m-isi-ov.h; s-bsd4-2.h or s-bsd4-3.h)
+Integrated Solutions `Optimum V' (-machine=isi-ov;
+				  -opsystem=bsd4-2 or -opsystem=bsd4-3)
 
   18.52 said to work on some sort of ISI machine.
   Version 18.45 worked (running on a Optimum V (VME bus, 68020)
@@ -397,14 +423,19 @@
   Compilation with -O is rumored to break something.
 
   On recent system versions, you may need to undefine the macro UMAX
-  in etc/loadst.c and src/getpagesize.h.  They stupidly defined this
+  in lib-src/loadst.c and src/getpagesize.h.  They stupidly defined this
   in a system header file, which confuses Emacs (which thinks that UMAX
   indicates the Umax operating system).
 
-Intel 80386 (m-intel386.h or m-is386.h; s-bsd4-2.h, s-usg5-2-2.h, s-usg5-3.h,
-	     s-386-ix.h, s-esix.h or s-xenix.h)
+Intel 386 (-machine=intel386 or -machine=is386;
+	   -opsystem=bsd4-2, usg5-2-2, usg5-3, isc2-2, 386-ix,
+                     esix, or xenix)
 
-  Changes merged in 18.50 for all three operating systems.
+  18.58 should support a wide variety of operating systems.
+  Use -opsystem=isc2-2 for Interactive 386/ix version 2.2.
+  Use -opsystem=386ix for prior versions.
+  Use -opsystem=esix for Esix.  It isn't clear what to do on an SCO system.
+
   If you are using Xenix, see notes above under Xenix.
 
   Some sysV.3 systems seem to have bugs in `opendir';
@@ -437,20 +468,20 @@
   but define `struct tc' instead; add `#define tchars tc'
   to config.h to solve this problem.
 
-  The file m-is386.h is used for an Integrated Solutions 386 machine.
+  The file -machine=is386 is used for an Integrated Solutions 386 machine.
   It may also be correct for Microport systems.
 
-Iris 2500 (m-irist.h; s-iris3-5.h or s-iris3-6.h)
+Iris 2500 (-machine=irist; -opsystem=iris3-5 or -opsystem=iris3-6)
 
-  Version 18 said to work; use s-irist3-5.h for system version 2.5
-  and s-iris3-6.h for system version 3.6.
+  Version 18 said to work; use -opsystem=irist3-5 for system version 2.5
+  and -opsystem=iris3-6 for system version 3.6.
 
-Iris 2500 Turbo (m-irist.h; s-iris3-5.h or s-iris3-6.h)
+Iris 2500 Turbo (-machine=irist; -opsystem=iris3-5 or -opsystem=iris3-6)
 
-  18.49 works.  Use s-iris3-6.h for system versions 3.6 and up.
+  18.49 works.  Use -opsystem=iris3-6 for system versions 3.6 and up.
   Note that the 3030 is the same machine as this.
 
-Iris 4D (m-iris4d.h; s-iris3-6.h or s-irix3-3.h)
+Iris 4D (-machine=iris4d; -opsystem=irix3-3)
 
   18.56 is known to work on 4D series machines with Irix 3.3 or later.
 
@@ -459,12 +490,15 @@
 
     RANLIB=true
 
-  Someone says that with the yellow pages you must change two definitions
-  in m-iris4d.h as follows:
+  Someone said that with the yellow pages you must change two definitions
+  in -machine=iris4d as follows:
 
     #define LIBS_MACHINE -lsun -lbsd -lPW -lmld
     #define C_SWITCH_MACHINE -I/usr/include/sun -I/usr/include/bsd
 
+  jg@bambi.esd.sgi.com says this isn't true anymore, 
+  but the info might as well be here just in case.
+
 Macintosh
 
   We are boycotting Apple because of Apple's efforts to take away
@@ -475,7 +509,7 @@
 
   See the file APPLE in this directory for more information.
 
-Masscomp (m-masscomp.h; s-rtu.h)
+Masscomp (-machine=masscomp; -opsystem=rtu)
 
   18.36 worked on a 5500DP running RTU v3.1a and compiler version 3.2
   with minor fixes that are included in 18.37.  However, bizarre behavior
@@ -488,73 +522,74 @@
   to take the time to install the numerous workarounds required to
   compensate for this bug; go complain to Masscomp.
 
-  For RTU version 3.1, define FIRST_PTY_LETTER to be 'p' in s-rtu.h
+  For RTU version 3.1, define FIRST_PTY_LETTER to be 'p' in src/s/rtu.h
   (or #undef and redefine it in config.h) so that ptys will be used.
 
   GNU Emacs is said to have no chance of compiling on RTU versions
   prior to v3.0.
 
-Megatest (m-mega68.h; s-bsd4-2.h)
+Megatest (-machine=mega68; -opsystem=bsd4-2)
 
   Emacs 15 worked; do not have any reports about Emacs 16 or 17
   but any new bugs are probably not difficult.
 
-Mips (m-mips.h or m-mips4.h; s-usg5-2-2.h, s-bsd4-3.h)
+Mips (-machine=mips or -machine=mips4; -opsystem=usg5-2-2, -opsystem=bsd4-3)
 
   Changes merged in 18.39.  Some fixes in 18.56.
 
-  Use m-mips4.h for RISCOS version 4; use s-bsd4-3.h with the BSD world.
-
-Motorola Delta (m-delta.h; s-usg5-3.h)
+  Use -machine=mips4 for RISCOS version 4; use -opsystem=bsd4-3 with
+  the BSD world.
 
-  m- file added in version 18.56.
+Motorola Delta (-machine=delta; -opsystem=usg5-3)
 
-National Semiconductor 32000 (m-ns32000.h; s-usg5-2.h)
+  Machine support added in version 18.56.
+
+National Semiconductor 32000 (-machine=ns32000; -opsystem=usg5-2)
 
   This is for a complete machine from National Semiconductor,
   running Genix.  Changes merged in version 19.
 
-NCR Tower 32 running System V release 2 (m-tower32.h; s-usg5-2-2.h)
+NCR Tower 32 running System V release 2 (-machine=tower32; -opsystem=usg5-2-2)
 
   Works as of 17.56.  If you change src/ymakefile so that CFLAGS includes
   C_OPTIMIZE_SWITCH rather than C_DEBUG_SWITCH, check out the comments
-  in src/m-tower32.h about this.
+  in src/m/tower32.h about this.
 
   There is a report that compilation with -O did not work with 18.54.
 
-NCR Tower 32 running System V release 3 (m-tower32v3.h; s-usg5-3.h)
+NCR Tower 32 running System V release 3 (-machine=tower32v3; -opsystem=usg5-3)
 
   Works as of 18.56.  If you change src/ymakefile so that CFLAGS includes
   C_OPTIMIZE_SWITCH rather than C_DEBUG_SWITCH, and do not use gcc, check 
-  out the comments in src/m-tower32v3.h about this.
+  out the comments in src/m/tower32v3.h about this.
 
-Nixdorf Targon 31 (m-targon31.h; s-usg5-2-2.h)
+Nixdorf Targon 31 (-machine=targon31; -opsystem=usg5-2-2)
 
-  m- file for version 17 is included in 18
+  Machine description file for version 17 is included in 18
   but whether it works is not known.
   src/unexec.c bombs if compiled with -O.
   Note that the "Targon 35" is really a Pyramid.
 
-Nu (TI or LMI) (m-nu.h; s-usg5-2.h)
+Nu (TI or LMI) (-machine=nu; -opsystem=usg5-2)
 
   Version 18 is believed to work.
 
-Plexus (m-plexus.h; s-usg5-2.h)
+Plexus (-machine=plexus; -opsystem=usg5-2)
 
   Works as of 17.56.
 
-Pmax (DEC Mips)  (m-pmax.h; s-bsd4-2.h)
+Pmax (DEC Mips)  (-machine=pmax; -opsystem=bsd4-2)
 
   See under DECstation, above.
 
-Prime EXL (m-intel386.h; s-usg5-3.h)
+Prime EXL (-machine=intel386; -opsystem=usg5-3)
 
   Minor changes merged in 19.1.
 
-Pyramid (m-pyramid.h; s-bsd4-2.h)
+Pyramid (-machine=pyramid; -opsystem=bsd4-2)
 
   In OSx 4.0, it seems necessary to add the following two lines
-  to m-pyramid.h:
+  to src/m/pyramid.h:
      #define _longjmp longjmp
      #define _setjmp setjmp
 
@@ -565,26 +600,29 @@
 
   Some versions of the pyramid compiler get fatal
   errors when the -gx compiler switch is used; if this
-  happens to you, change src/m-pyramid.h to define
+  happens to you, change src/m/pyramid.h to define
   C_DEBUG_SWITCH with an empty definition.
 
   Some old system versions may require you to define PYRAMID_OLD
   in when alloca.s is preprocessed, in order to define _longjmp and _setjmp.
 
-Sequent Balance (m-sequent.h; s-bsd4-2.h, or s-bsd4-3.h on newer systems)
+Sequent Balance (-machine=sequent;
+	         -opsystem=bsd4-2, or -opsystem=bsd4-3 on newer systems)
 
   Emacs 18.51 should work on system version 3.0.  18.52 is said to work.
-  Delete some lines at the end of m-sequent.h for earlier system versions.
+  Delete some lines at the end of src/m/sequent.h for earlier system
+  versions.
 
-Sequent Symmetry (m-symmetry.h; s-bsd4-3.h)
+Sequent Symmetry (-machine=symmetry; -opsystem=bsd4-3)
 
   Emacs 19 should work.
 
-SONY News (m-news.h; s-bsd4-2.h, or s-bsd4-3.h for system release 3)
+SONY News (-machine=news;
+	   -opsystem=bsd4-2, or -opsystem=bsd4-3 for system release 3)
 
   18.52 should work.
 
-SONY News 3000 series (RISC NEWS) (m-news-risc.h; s-bsd4-3.h)
+SONY News 3000 series (RISC NEWS) (-machine=news-risc; -opsystem=bsd4-3)
 
   Works, as of 18.56.  Note that this is a MIPS architecture machine.
 
@@ -592,24 +630,26 @@
 
   See Titan.
 
-Stride (m-stride.h; s-usg5-2.h)
+Stride (-machine=stride; -opsystem=usg5-2)
 
   Works (most recent news for 18.30) on their release 2.0.
-  For release 2.2, see the end of m-stride.h.
+  For release 2.2, see the end of src/m/stride.h.
   It may be possible to run on their V.1 system but changes
   in the s- file would be needed.
 
-Sun 1, 2 and 3 (m-sun1.h, m-sun2.h, m-sun3.h; s-bsd4-2.h or s-sunos4.h)
+Sun 1, 2 and 3 (-machine=sun1, -machine=sun2, -machine=sun3;
+		-opsystem=bsd4-2, sunos4-0, or sunos4-1)
 
-  There are three m- files for different versions of SunOS.
+  There are three machine files for different versions of SunOS.
   All are derived from Berkeley 4.2.  Emacs 17 has run on all of them.
-  Whether you should use m-sun1.h, m-sun2.h or m-sun3.h depends
-  on the VERSION OF THE OPERATING SYSTEM you have.
-  You will need to use m-sun3.h on Sun 2's running SunOS release 3.
+  Whether you should use -machine=sun1, -machine=sun2 or -machine=sun3
+  depends on the VERSION OF THE OPERATING SYSTEM you have.
+  You will need to use -machine=sun3 on Sun 2's running SunOS release 3.
 
-  For SunOS release 4 on a Sun 3, use m-sun3.h and s-sunos4.h.
-  See the file etc/SUNBUG for how to solve problems caused by bugs in
-  the "export" version of SunOS 4.
+  For SunOS release 4 on a Sun 3, use -machine=sun3 and
+  -opsystem=sunos4-0 or -opsystem=sunos4-1.
+  See the file share-lib/SUNBUG for how to solve problems caused by
+  bugs in the "export" version of SunOS 4.
 
   If you have trouble using open-network-stream, get the
   distribution of `bind' (the BSD name-server), build libresolv.a,
@@ -618,7 +658,7 @@
 
   If you want to use SunWindows, define HAVE_SUN_WINDOWS
   in config.h to enable a special interface called `emacstool'.
-  The definition must *precede* the #include "m-sun3.h".
+  The definition must *precede* the #include "machine.h".
   System version 3.2 is required for this facility to work.
 
   We recommend that you instead use the X window system, which
@@ -627,7 +667,7 @@
 
   If you are compiling for X windows, and the X window library was
   compiled to use the 68881, then you must edit config.h according
-  the comments at the end of m-sun3.h.
+  the comments at the end of -machine=sun3.
 
   Note that Emacs on a Sun is not really as big as it looks.
   As dumped, it includes around 200k of zeros between the
@@ -638,82 +678,97 @@
   To build a single Emacs that will run on Sun 2 and Sun 3
   HARDWARE, just build it on the Sun 2.
 
-Sun 4 (m-sparc.h; s-bsd4-2.h or s-sunos4.h)
+Sun 4 (-machine=sparc;
+       -opsystem=bsd4-2, -opsystem=sunos4-0, -opsystem=sunos4-1)
 
   Changes merged in 18.50.  Some people say optimizing compilation
   does not work; some say that -O2 (whatever that is) works
   perhaps with a small change.
 
-  Use s-sunos4.h for operating system version 4.
-  See the file etc/SUNBUG for how to solve problems caused by bugs in
-  the "export" version of SunOS 4.
+  Use -opsystem=sunos4-0 for operating system version 4.0, and
+  -opsystem=sunos4-1 for later versions.
+  See the file share-lib/SUNBUG for how to solve problems caused by
+  bugs in the "export" version of SunOS 4.
 
-Sun Roadrunner (m-sun386.h; s-sunos4.h)
+Sun Roadrunner (-machine=sun386; -opsystem=sunos4-0 or -opsystem=sunos4-1)
 
   Changes merged in 18.51.
 
-Tahoe (m-tahoe.h; s-bsd4-2.h or s-bsd4-3.h)
+Tadpole 68K (-machine=tad68k; -opsystem=usg5-3)
+
+  Changes merged in 19.1.
+
+  You may need to edit Makefile to change the variables LIBDIR and
+  BINDIR from /usr/local to /usr/contrib.
+
+  To give movemail access to /usr/mail, you may need to execute
+
+    chmod 2755 etc/movemail; chgrp mail etc/movemail
+
+Tahoe (-machine=tahoe; -opsystem=bsd4-2 or -opsystem=bsd4-3)
 
   18.52 known to work on some Tahoes, but a compiler bug intervenes
   on others.  Some Emacs versions have worked in Unisys 1r4
   (not in 1r3) and CCI I.21.
 
-  If you have trouble compiling etc/loadst.c, turn off the definition
-  of DKSTAT_HEADER_FILE in m-tahoe.h.
+  If you have trouble compiling lib-src/loadst.c, turn off the definition
+  of DKSTAT_HEADER_FILE in -machine=tahoe.
 
-Tandem Integrity S2 (m-tandem-s2.h; s-usg5-3.h)
+Tandem Integrity S2 (-machine=tandem-s2; -opsystem=usg5-3)
 
   Changes merged in 18.56 but subprocess support is turned off.
   You will probably want to see if you can make subprocesses work.
 
-  You must edit etc/Makefile to define LOADLIBES = -mld.
+  You must edit lib-src/Makefile to define LOADLIBES = -mld.
 
-Tektronix 16000 box (6130?) (m-ns16000.h; s-bsd4-2.h)
+Tektronix 16000 box (6130?) (-machine=ns16000; -opsystem=bsd4-2)
 
   Emacs 17.61 worked.
 
-Tektronix 4300 (m-tex4300.h; s-bsd4-3.h)
+Tektronix 4300 (-machine=tek4300; -opsystem=bsd4-3)
 
   Emacs 18.51 should work.
 
-Titan P2 or P3 (m-titan.h; s-usg5-3.h)
+Titan P2 or P3 (-machine=titan; -opsystem=usg5-3)
 
   Changes probably merged in version 19.
 
-Ustation E30 (SS5E) (m-ustation.h; s-unipl5-2.h).
+Ustation E30 (SS5E) (-machine=ustation; -opsystem=unipl5-2).
 
   Changes merged in 18.52; don't know whether they work.
 
-Vax running Berkeley Unix (m-vax.h; s-bsd4-1.h, s-bsd4-2.h or s-bsd4-3.h)
+Vax running Berkeley Unix (-machine=vax;
+			   -opsystem=bsd4-1, bsd4-2 or bsd4-3)
 
   Works.
 
-Vax running Ultrix (m-vax.h; s-bsd4-2.h)
+Vax running Ultrix (-machine=vax; -opsystem=bsd4-2)
 
   Works.  See under Ultrix for problems using X windows on Ultrix.
 
-Vax running System V rel 2 (m-vax.h; s-usg5-2.h)
+Vax running System V rel 2 (-machine=vax; -opsystem=usg5-2)
 
   18.27 Works.
 
-Vax running System V rel 0 (m-vax.h; s-usg5-0.h)
+Vax running System V rel 0 (-machine=vax; -opsystem=usg5-0)
 
   Works as of 18.36.
 
-Vax running VMS (m-vax.h; s-vms.h  but on VMS they are m_vax.h and s_vms.h)
+Vax running VMS (-machine=vax; -opsystem=vms
+                 but on VMS they are m_vax.h and s_vms.h)
 
   18.36 believed to work.  Addition of features is necessary to make
   this Emacs version more usable.
 
-Whitechapel MG1 (m-mg1.h, s-?)
+Whitechapel MG1 (-machine=mg1, s-?)
 
   May work.  Supposedly no changes were needed except the m- file.
   I do not know what Unix version runs on them.
 
-Wicat (m-wicat.h; s-usg5-2.h)
+Wicat (-machine=wicat; -opsystem=usg5-2)
 
   Changes merged as of 18.6; whether they work is unknown.
-  See comments in m-wicat.h for things you should change
+  See comments in src/m/wicat.h for things you should change
   depending on the system and compiler version you have.
 
 Local variables:
--- a/src/callproc.c	Thu Feb 06 00:58:53 1992 +0000
+++ b/src/callproc.c	Thu Feb 06 01:02:59 1992 +0000
@@ -19,6 +19,7 @@
 
 
 #include <signal.h>
+#include <errno.h>
 
 #include "config.h"
 
@@ -104,7 +105,7 @@
      int nargs;
      register Lisp_Object *args;
 {
-  Lisp_Object display, buffer, path;
+  Lisp_Object display, infile, buffer, path, current_dir;
   int fd[2];
   int filefd;
   register int pid;
@@ -118,23 +119,27 @@
 #endif
   CHECK_STRING (args[0], 0);
 
-  if (nargs <= 1 || NILP (args[1]))
-    args[1] = build_string ("/dev/null");
+  if (nargs >= 2 && ! NILP (args[1]))
+    {
+      infile = Fexpand_file_name (args[1], current_buffer->directory);
+      CHECK_STRING (infile, 1);
+    }
   else
-    args[1] = Fexpand_file_name (args[1], current_buffer->directory);
-
-  CHECK_STRING (args[1], 1);
+    infile = build_string ("/dev/null");
 
   {
     register Lisp_Object tem;
-    buffer = tem = args[2];
-    if (nargs <= 2)
+    if (nargs < 3)
       buffer = Qnil;
-    else if (!(EQ (tem, Qnil) || EQ (tem, Qt)
-	       || XFASTINT (tem) == 0))
+    else 
       {
-	buffer = Fget_buffer (tem);
-	CHECK_BUFFER (buffer, 2);
+	buffer = tem = args[2];
+	if (!(EQ (tem, Qnil) || EQ (tem, Qt)
+	      || XFASTINT (tem) == 0))
+	  {
+	    buffer = Fget_buffer (tem);
+	    CHECK_BUFFER (buffer, 2);
+	  }
       }
   }
 
@@ -152,10 +157,10 @@
     new_argv[i - 3] = 0;
   }
 
-  filefd = open (XSTRING (args[1])->data, O_RDONLY, 0);
+  filefd = open (XSTRING (infile)->data, O_RDONLY, 0);
   if (filefd < 0)
     {
-      report_file_error ("Opening process input file", Fcons (args[1], Qnil));
+      report_file_error ("Opening process input file", Fcons (infile, Qnil));
     }
   /* Search for program; barf if not found.  */
   openp (Vexec_path, args[0], "", &path, 1);
@@ -177,6 +182,14 @@
 #endif
     }
 
+  /* Make sure that the child will be able to chdir to the current
+     buffer's current directory.  We can't just have the child check
+     for an error when it does the chdir, since it's in a vfork.  */
+  current_dir = expand_and_dir_to_file (current_buffer->directory, Qnil);
+  if (NILP (Ffile_accessible_directory_p (current_dir)))
+    report_file_error ("Setting current directory",
+		       Fcons (current_buffer->directory, Qnil));
+
   {
     /* child_setup must clobber environ in systems with true vfork.
        Protect it from permanent change.  */
@@ -204,7 +217,7 @@
 #else
         setpgrp (pid, pid);
 #endif /* USG */
-	child_setup (filefd, fd1, fd1, new_argv, env, 0);
+	child_setup (filefd, fd1, fd1, new_argv, env, 0, current_dir);
       }
 
 #if 0
@@ -338,13 +351,19 @@
    ENV is the environment for the subprocess.
 
    SET_PGRP is nonzero if we should put the subprocess into a separate
-   process group.  */
+   process group.  
 
-child_setup (in, out, err, new_argv, env, set_pgrp)
+   CURRENT_DIR is an elisp string giving the path of the current
+   directory the subprocess should have.  Since we can't really signal
+   a decent error from within the child, this should be verified as an
+   executable directory by the parent.  */
+
+child_setup (in, out, err, new_argv, env, set_pgrp, current_dir)
      int in, out, err;
      register char **new_argv;
      char **env;
      int set_pgrp;
+     Lisp_Object current_dir;
 {
   register int pid = getpid();
 
@@ -361,21 +380,24 @@
      the superior's static variables as if the superior had done alloca
      and will be cleaned up in the usual way.  */
 
-  if (XTYPE (current_buffer->directory) == Lisp_String)
-    {
-      register unsigned char *temp;
-      register int i;
+  {
+    register unsigned char *temp;
+    register int i;
 
-      i = XSTRING (current_buffer->directory)->size;
-      temp = (unsigned char *) alloca (i + 2);
-      bcopy (XSTRING (current_buffer->directory)->data, temp, i);
-      if (temp[i - 1] != '/') temp[i++] = '/';
-      temp[i] = 0;
-      /* Switch to that directory, and report any error.  */
-      if (chdir (temp) < 0)
-	report_file_error ("In chdir",
-			   Fcons (current_buffer->directory, Qnil));
-    }
+    i = XSTRING (current_dir)->size;
+    temp = (unsigned char *) alloca (i + 2);
+    bcopy (XSTRING (current_dir)->data, temp, i);
+    if (temp[i - 1] != '/') temp[i++] = '/';
+    temp[i] = 0;
+
+    /* We can't signal an Elisp error here; we're in a vfork.  Since
+       the callers check the current directory before forking, this
+       should only return an error if the directory's permissions
+       are changed between the check and this chdir, but we should
+       at least check.  */
+    if (chdir (temp) < 0)
+      exit (errno);
+  }
 
   /* Set `env' to a vector of the strings in Vprocess_environment.  */
   {
@@ -435,7 +457,7 @@
      char *var;
      int varlen;
      char **value;
-     int **valuelen;
+     int *valuelen;
 {
   Lisp_Object scan;
 
@@ -448,7 +470,7 @@
 	  && XSTRING (entry)->data[varlen] == '='
 	  && ! bcmp (XSTRING (entry)->data, var, varlen))
 	{
-	  *value    = XSTRING (entry)->data + (varlen + 1);
+	  *value    = (char *) XSTRING (entry)->data + (varlen + 1);
 	  *valuelen = XSTRING (entry)->size - (varlen + 1);
 	  return 1;
 	}