[comp.emacs] Problems with Interactive Unix v2.2 & EMACS 18-55

MYJAK@titan.ksc.nasa.gov (11/27/90)

  Date:    Mon, 19 Nov 1990 8:46:15 EST
  From:    MYJAK@TITAN.KSC.NASA.GOV
  Message-Id: <901119084615.1b20@TITAN.KSC.NASA.GOV>
  Subject: Problems w/ EMACS on Interactive UNIX 2.2
  To:      help-gnu-emacs@prep.ai.mit.edu
  X-Vmsmail-To: SMTP%"help-gnu-emacs@prep.ai.mit.edu"
  
  
  Sir,
  
  I am attempting to install GNU EMACS on a Compaq SystemPro 386/420
  running interactive's version 2.2 of AT&T's UNIX 5.3.
  
  I have modified the config.h file to include s-usg5-3.h and m-intel386.h
  as per the GNU instructions. Allegro CL is the environment I am attempting
  to build on the Compaq, and as such, Allegro also sent me some files to
  include within EMACS prior to building it. Allegro stipulated that I 
  replace the function "open-network-stream" (located in process.c) with
  their version of the function. Allegro requested that I also define
  the variable HAVE_UNIX_DOMAIN (which is supposed to activate the UNIX
  domain sockets).
  
  Here is the synopsys of my build:
  while compiling ./lisp.h
     lines 57,221,223,384,542,543, & 961 all report "extra tokens"
  which are ignored.
  
  while compiling ./sysdep.c
     lines 74,453,541,1780, & 2075 all report "extra tokens" which are
  also ignored. Then:
  line 688:	Unknown size
  line 709:	Undefined Structure
  
  The build then aborts on this critical error (1) and halts.
  
  Allegro claims that they have incorporated "... too many changes to
  GNU EMACS (18-55) to describe them to me over the phone."  This,
  naturally, was of little help. SO I thought I'd try sending ya'll
  mail. Perhaps the fact that TIOCGETC key was true may be of some help
  as thats what the compile choked on.
  
  Any assistance you can provide would greatly appreciated.
  
  Sincerely,
  
  
  Michael D. Myjak
  Senior Technical Specialist
  McDonnell Douglas Space Systems Co. - Kennedy Space Center
  (MYJAK@TITAN.KSC.NASA.GOV)
  
  

mt00@eurotherm.co.uk (Martin Tomes) (11/27/90)

Here is what I had to do to emacs 18.55 to make it run on Interactive
Systems Corp UNIX V2.2:

*** sysdep.c-dist	Wed Nov 14 13:55:38 1990
--- sysdep.c	Wed Nov 14 15:51:55 1990
***************
*** 112,117 ****
--- 112,126 ----

  #ifdef HAVE_TERMIO
  #include <termio.h>
+ /* MDT - Interactive have combined old and new facilities into one
+  *       include file which really confuses this code, so I have
+  *       undefined the old stuff which is not needed.
+  */
+ #ifdef ISC
+ #undef TIOCGETC
+ #endif
+
+
  #undef TIOCGETP
  #define TIOCGETP TCGETA
  #undef TIOCSETN
*** dispnew.c-dist	Tue Nov 20 16:59:17 1990
--- dispnew.c	Tue Nov 20 16:59:18 1990
***************
*** 1480,1486 ****
--- 1480,1488 ----
  \(such as `x'), or nil if emacs is running on an ordinary terminal.");
    DEFVAR_LISP ("window-system-version", &Vwindow_system_version,
      "Version number of the window system Emacs is running under.");
+ #ifndef CANNOT_DUMP
    Vwindow_system_version = Qnil;
+ #endif
    DEFVAR_BOOL ("cursor-in-echo-area", &cursor_in_echo_area,
      "Non-nil means put cursor in minibuffer after any message displayed there.
");
*** process.c-dist	Wed Nov 14 13:55:32 1990
--- process.c	Wed Nov 14 16:05:29 1990
***************
*** 62,72 ****
--- 62,78 ----
  #include <sys/time.h>

  #else /* not IRIS, not UNIPLUS */
+ #ifdef ISC
+ #include <sys/sysmacros.h>    /* for "minor" */
+ #include <sys/time.h>
+
+ #else /* not IRIS, not UNIPLUS, not ISC */
  #ifdef HAVE_TIMEVAL
  #if defined(USG) && !defined(IBMRTAIX)
  #include <time.h>
  #else /* IBMRTAIX or not USG */
  #include <sys/time.h>
+ #endif /* ISC */
  #endif /* IBMRTAIX or not USG */
  #endif /* HAVE_TIMEVAL */
*** x11term.c-dist	Wed Nov 14 13:55:43 1990
--- x11term.c	Thu Nov 15 12:27:59 1990
***************
*** 74,80 ****
--- 74,84 ----
  #ifdef IRIS_4D
  #include <sys/time.h>
  #else
+ #ifdef ISC
+ #include <sys/time.h>
+ #else
  #include <time.h>
+ #endif
  #endif
  #else
  #include <sys/time.h>

*** config.h-dist	Thu Apr 21 09:18:33 1988
--- config.h	Tue Nov 27 14:14:00 1990
***************
*** 24,30 ****
     See the file ../etc/MACHINES for a list of systems and
     the names of the s- files to use for them.
     See s-template.h for documentation on writing s- files.  */
! #include "s-bsd4-2.h"

  /* Include here a m- file that describes the machine and system you use.
     See the file ../etc/MACHINES for a list of machines and
--- 24,30 ----
     See the file ../etc/MACHINES for a list of systems and
     the names of the s- files to use for them.
     See s-template.h for documentation on writing s- files.  */
! #include "s-isc.h"

  /* Include here a m- file that describes the machine and system you use.
     See the file ../etc/MACHINES for a list of machines and
***************
*** 31,37 ****
     the names of the m- files to use for them.
     See m-template.h for info on what m- files should define.
     */
! #include "m-vax.h"

  /* Load in the conversion definitions if this system
     needs them and the source file being compiled has not
--- 31,37 ----
     the names of the m- files to use for them.
     See m-template.h for info on what m- files should define.
     */
! #include "m-386pc.h"

  /* Load in the conversion definitions if this system
     needs them and the source file being compiled has not
***************
*** 46,57 ****

  /* Define HAVE_X_WINDOWS if you want to use the X window system.  */

! /* #define HAVE_X_WINDOWS */

  /* Define X11 if you want to use version 11 of X windows.
     Otherwise, Emacs expects to use version 10.  */

! /* #define X11 */

  /* Define HAVE_X_MENU if you want to use the X window menu system.
     This appears to work on some machines that support X
--- 46,57 ----

  /* Define HAVE_X_WINDOWS if you want to use the X window system.  */

! #define HAVE_X_WINDOWS

  /* Define X11 if you want to use version 11 of X windows.
     Otherwise, Emacs expects to use version 10.  */

! #define X11

  /* Define HAVE_X_MENU if you want to use the X window menu system.
     This appears to work on some machines that support X


To make an s-isc.h copy s-usg5-2.h to s-isc.h and apply this diff:

*** s-isc.h-dist	Thu Mar  5 20:12:53 1987
--- s-isc.h	Wed Nov 21 13:38:08 1990
***************
*** 27,32 ****
--- 27,36 ----
  #define USG                           /* System III, System V, etc */

  #define USG5
+ #define ISC                   /* Identifies Interactive UNIX. */
+ #define LIBS_SYSTEM /usr/local/lib/gcc-gnulib
+ #define LIBX11_SYSTEM -linet
+ #define HAVE_SYSVIPC

  /* SYSTEM_TYPE should indicate the kind of system you are using.
   It sets the Lisp variable system-type.  */
***************
*** 60,72 ****
   *    Look in <sys/time.h> for a timeval structure.
   */

! /* #define HAVE_TIMEVAL */

  /*
   *    Define HAVE_SELECT if the system supports the `select' system call.
   */

! /* #define HAVE_SELECT */

  /*
   *    Define HAVE_PTYS if the system supports pty devices.
--- 64,77 ----
   *    Look in <sys/time.h> for a timeval structure.
   */

! #define HAVE_TIMEVAL
! #define USE_UTIME             /* Does not have utimes call. */

  /*
   *    Define HAVE_SELECT if the system supports the `select' system call.
   */

! /* #define HAVE_SELECT /* Almost works.  Stops sub process stuff from working.
 */

  /*
   *    Define HAVE_PTYS if the system supports pty devices.


And to get m-386pc.h copy m-intel386.h and apply this diff:

*** m-386pc.h-dist	Wed Nov 14 13:55:28 1990
--- m-386pc.h	Wed Nov 14 16:28:10 1990
***************
*** 73,84 ****
  
  #ifdef XENIX
  /* Data type of load average, as read out of kmem.  */
! #define LOAD_AVE_TYPE short
  
  /* Convert that into an integer that is 100 for a load average of 1.0  */
! #define LOAD_AVE_CVT(x) (((double) (x)) * 100.0 / FSCALE)
    
! #define FSCALE 256.0         /* determined by experimentation...  */
  #endif
  
  /* Define CANNOT_DUMP on machines where unexec does not work.
--- 73,84 ----
  
  #ifdef XENIX
  /* Data type of load average, as read out of kmem.  */
! #define LOAD_AVE_TYPE long
  
  /* Convert that into an integer that is 100 for a load average of 1.0  */
! #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
    
! #define FSCALE 400000.0         /* determined by experimentation...  */
  #endif
  
  /* Define CANNOT_DUMP on machines where unexec does not work.
***************
*** 85,91 ****
     Then the function dump-emacs will not be defined
     and temacs will do (load "loadup") automatically unless told otherwise.  */
  
! /* #define CANNOT_DUMP */
  
  /* Define VIRT_ADDR_VARIES if the virtual addresses of
     pure and impure space as loaded can vary, and even their
--- 85,91 ----
     Then the function dump-emacs will not be defined
     and temacs will do (load "loadup") automatically unless told otherwise.  */
  
! #define CANNOT_DUMP
  
  /* Define VIRT_ADDR_VARIES if the virtual addresses of
     pure and impure space as loaded can vary, and even their


Note that it defines CANNOT_DUMP.  If you define HAVE_SELECT and
undefine CANNOT_DUMP it will dump, but emacsclient and shell mode will
not work properly.  Basically the ISC select() call does not detect
all events but allows dump, emacs select() finds all the events but
dumped versions crash.

Versions which do not use X windows will dump.  To build one of these
undefine HAVE_X_WINDOWS and X11 in s-isc.h and CANNOT_DUMP in
m-386pc.h.

Martin Tomes

Janet:    mtomes@uk.co.eurotherm    | Eurotherm Limited, Faraday Close,
Internet: mtomes@eurotherm.co.uk    | Durrington, Worthing, W.Sussex, England.
UUCP:     {ukc,uunet}!etherm!mtomes | Phone: +44 903 68500  Fax: +44 903 65982