[comp.emacs] irix 3.3 patches to emacs 18.55 and epoch 3.2b

scotth@corp.sgi.com (Scott Henry) (07/31/90)

#!/bin/sh
# to extract, remove the header and type "sh filename"
if `test ! -s ./README-Irix3.3`
then
echo "writing ./README-Irix3.3"
cat > ./README-Irix3.3 << '\Rogue\Monster\'
This shar contains files that patch GNU emacs 18.55 and epoch 3.2b to
compile and run under Irix release 3.3. To build either or both programs:

1) untar to make the directory tree(s).
2) unshar these files some${where} convenient.
3) cd ..../src
4) cp config.h-dist config.h
be sure that you don't mix up the emacs/src and epoch/src patches.
5) patch < ${where}/irix3.3-?-src.diff
6) cd ../etc
7) patch < ${where}/irix3.3-etc.diff
8) cd ..
9) make

The following files are included:

README-Irix3.3             this file
irix3.3-emacs-src.diff     patches to emacs/dist-18.55/src files
irix3.3-epoch-src.diff     patches to epoch-3.2/src files
irix3.3-etc.diff           patches to ..../etc files (works for both epoch
                           and emacs).

The following files are patched:
(these two are the same)
emacs/src/unexmips.c       a bug in 3.2 allowed the original code to work.
epoch/src/unexmips.c       this patch is backwards compatible to 3.2
(these two have one difference)
emacs/src/s-irix3_3.h      a new configuration file specifically for
epoch/src/s-irix3_3.h        irix release 3.3
(these two are different)
emacs/src/config.h         the config.h file that I use
epoch/src/config.h         (ditto)

epoch/src/x11term.c
epoch/src/x11fns.c
epoch/src/Makefile         it assumes the use of gcc

etc/loadst.c               some patches to enable getting the load average
etc/Makefile               and make loadst build.

I hope that this is sufficient to allow the programs to be built and run
succesfully. Neither Silicon Graphics nor I can make any warranty or
claims of current or future support.

scott henry <scotth@sgi.com>
\Rogue\Monster\
else
  echo "will not over write ./README-Irix3.3"
fi
if `test ! -s ./irix3.3-emacs-src.diff`
then
echo "writing ./irix3.3-emacs-src.diff"
cat > ./irix3.3-emacs-src.diff << '\Rogue\Monster\'
*** unexmips.c.orig	Thu Jan 12 16:14:05 1989
--- unexmips.c	Mon Jul 30 22:10:10 1990
***************
*** 255,261 ****
    rdata_section->s_size = data_start - DATA_START;
    data_section->s_vaddr = data_start;
    data_section->s_paddr = data_start;
!   data_section->s_size = brk - DATA_START;
    data_section->s_scnptr = rdata_section->s_scnptr + rdata_section->s_size;
    vaddr = data_section->s_vaddr + data_section->s_size;
    scnptr = data_section->s_scnptr + data_section->s_size;
--- 255,261 ----
    rdata_section->s_size = data_start - DATA_START;
    data_section->s_vaddr = data_start;
    data_section->s_paddr = data_start;
!   data_section->s_size = brk - data_start;
    data_section->s_scnptr = rdata_section->s_scnptr + rdata_section->s_size;
    vaddr = data_section->s_vaddr + data_section->s_size;
    scnptr = data_section->s_scnptr + data_section->s_size;
*** s-irix3_3.h.orig	Mon Jul 30 22:10:10 1990
--- s-irix3_3.h	Mon Jul 30 23:04:30 1990
***************
*** 0 ****
--- 1,202 ----
+ /* Definitions file for GNU Emacs running on Silicon Graphics system 3.6.
+    Copyright (C) 1987 Free Software Foundation, Inc.
+ 
+ This file is part of GNU Emacs.
+ 
+ GNU Emacs is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY.  No author or distributor
+ accepts responsibility to anyone for the consequences of using it
+ or for whether it serves any particular purpose or works at all,
+ unless he says so in writing.  Refer to the GNU Emacs General Public
+ License for full details.
+ 
+ Everyone is granted permission to copy, modify and redistribute
+ GNU Emacs, but only under the conditions described in the
+ GNU Emacs General Public License.   A copy of this license is
+ supposed to have been given to you along with GNU Emacs so you
+ can know your rights and responsibilities.  It should be in a
+ file named COPYING.  Among other things, the copyright notice
+ and this notice must be preserved on all copies.  */
+ 
+ 
+ /*
+  *	Define symbols to identify the version of Unix this is.
+  *	Define all the symbols that apply correctly.
+  */
+ 
+ #define USG
+ #define USG5
+ #define IRIS
+ 
+ /* SYSTEM_TYPE should indicate the kind of system you are using.
+  It sets the Lisp variable system-type.  */
+ 
+ #define SYSTEM_TYPE "silicon-graphics-unix"
+ 
+ /* nomultiplejobs should be defined if your system's shell
+  does not have "job control" (the ability to stop a program,
+  run some other program, then continue the first one).  */
+ 
+ /* #define NOMULTIPLEJOBS */
+ #undef NOMULTIPLEJOBS
+ 
+ /* Default is to set interrupt_input to 0: don't do input buffering within Emacs */
+ 
+ /* #define INTERRUPT_INPUT */
+ 
+ /* Letter to use in finding device name of first pty,
+   if system supports pty's.  'a' means it is /dev/ptya0  */
+ 
+ #define FIRST_PTY_LETTER 'q'
+ 
+ /*
+  *	Define HAVE_TERMIO if the system provides sysV-style ioctls
+  *	for terminal control.
+  */
+ 
+ #define HAVE_TERMIO
+ 
+ /*
+  *	Define HAVE_TIMEVAL if the system supports the BSD style clock values.
+  *	Look in <sys/time.h> for a timeval structure.
+  */
+ 
+ #define HAVE_TIMEVAL
+ 
+ /* `utime' system call doesn't understand timevals.  */
+ 
+ #define IRIS_UTIME
+  
+ /*
+  *	Define HAVE_SELECT if the system supports the `select' system call.
+  */
+ 
+ #define HAVE_SELECT
+ 
+ /*
+  *	Define HAVE_PTYS if the system supports pty devices.
+  */
+ 
+ #define HAVE_PTYS
+ 
+ /* Define HAVE_SOCKETS if system supports 4.2-compatible sockets.  */
+ 
+ #define HAVE_SOCKETS
+ 
+ /*
+  *	Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
+  *      The 4.2 opendir, etc., library functions.
+  */
+ 
+ /* #define NONSYSTEM_DIR_LIBRARY */
+ 
+ /* Define this symbol if your system has the functions bcopy, etc. */
+ 
+ #define BSTRING
+ 
+ /* subprocesses should be defined if you want to
+    have code for asynchronous subprocesses
+    (as used in M-x compile and M-x shell).
+    This is generally OS dependent, and not supported
+    under most USG systems. */
+ 
+ #define subprocesses
+ 
+ /* If your system uses COFF (Common Object File Format) then define the
+    preprocessor symbol "COFF". */
+ 
+ /* #define COFF */
+ 
+ /* define MAIL_USE_FLOCK if the mailer uses flock
+    to interlock access to /usr/spool/mail/$USER.
+    The alternative is that a lock file named
+    /usr/spool/mail/$USER.lock.  */
+ 
+ /* #define MAIL_USE_FLOCK */
+ 
+ /* Define CLASH_DETECTION if you want lock files to be written
+    so that Emacs can tell instantly when you try to modify
+    a file that someone else has modified in his Emacs.  */
+ 
+ /* #define CLASH_DETECTION */
+ 
+ /* We use the Berkeley (and usg5.2.2) interface to nlist.  */
+ 
+ #define NLIST_STRUCT
+ 
+ /* The file containing the kernel's symbol table is called /vmunix.  */
+ 
+ #define KERNEL_FILE "/unix"
+ 
+ /* The symbol in the kernel where the load average is found
+    is named _avenrun.  */
+ 
+ #define LDAV_SYMBOL "avenrun"
+ 
+ 
+ /* Special hacks needed to make Emacs run on this system.  */
+ 
+ /*
+  *	Make the sigsetmask function go away.  Don't know what the
+  *	ramifications of this are, but doesn't seem possible to
+  *	emulate it properly anyway at this point.
+  */
+ 
+ #define sigsetmask(mask)	/* Null expansion */
+ #define sigblock(x) x
+ 
+ /* pre-3.3 Irix defines SIGIO in signal.h, but doesn't implement it. */
+ /* For some reason under Irix 3.3, SIGIO works under termcap driver but not
+    X11. Take your pick. SIGIO is supposed to be slightly faster. */
+ /* #undef SIGIO */
+ 
+ #define C_SWITCH_MACHINE
+ 
+ /* setjmp and longjmp can safely replace _setjmp and _longjmp,
+    but they will run slower.  */
+ 
+ #define _setjmp setjmp
+ #define _longjmp longjmp
+ 
+ /* On USG systems the system calls are interruptable by signals
+  that the user program has elected to catch.  Thus the system call
+  must be retried in these cases.  To handle this without massive
+  changes in the source code, we remap the standard system call names
+  to names for our own functions in sysdep.c that do the system call
+  with retries. */
+ 
+ #define read sys_read
+ #define open sys_open
+ #define write sys_write
+ 
+ #define INTERRUPTABLE_OPEN
+ #define INTERRUPTABLE_IO
+ 
+ /* On USG systems these have different names */
+ 
+ #define index strchr
+ #define rindex strrchr
+ 
+ /* USG systems tend to put everything declared static
+    into the initialized data area, which becomes pure after dumping Emacs.
+    Foil this.  Emacs carefully avoids static vars inside functions.  */
+ 
+ /* #define static */
+ 
+ /* Compiler bug bites on many systems when default ADDR_CORRECT is used.  */
+ 
+ #define ADDR_CORRECT(x) (int)((char *)(x) - (char*)0)
+ 
+ /* some errno.h's don't actually allocate the variable itself */
+ 
+ #define NEED_ERRNO
+ 
+ /*
+  * I want IPC to work (for emacsclient), so I will first try:
+  */
+ #define HAVE_SYSVIPC
+ 
+ /*
+  * Irix 3.3 defines this, and causes an infinite loop when trying to dump.
+  */
+ #define HAVE_GETWD
*** config.h-orig	Thu Apr 21 01:18:33 1988
--- config.h	Mon Jul 30 22:10:11 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-irix3_3.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-iris4d.h"
  
  /* Load in the conversion definitions if this system
     needs them and the source file being compiled has not
***************
*** 114,117 ****
--- 114,129 ----
     its priority.  */
  
  /* #define HIGHPRI */
+ 
+ /* we use Yellow Pages here, emacs doesn't understand "~/" without this */
+ #undef LIB_STANDARD
+ #define LIB_STANDARD -lsun -lbsd -lc /usr/lib/crtn.o
+ 
+ #define C_OPTIMIZE_SWITCH -O2
+ #define C_DEBUG_SWITCH -O2
+ 
+ /*
+  * enable updating the environment passed to sub-shells
+  */
+ #define MAINTAIN_ENVIRONMENT
\Rogue\Monster\
else
  echo "will not over write ./irix3.3-emacs-src.diff"
fi
if `test ! -s ./irix3.3-epoch-src.diff`
then
echo "writing ./irix3.3-epoch-src.diff"
cat > ./irix3.3-epoch-src.diff << '\Rogue\Monster\'
*** unexmips.c.orig	Mon Apr 23 14:45:03 1990
--- unexmips.c	Tue Jul 31 10:01:43 1990
***************
*** 255,261 ****
    rdata_section->s_size = data_start - DATA_START;
    data_section->s_vaddr = data_start;
    data_section->s_paddr = data_start;
!   data_section->s_size = brk - DATA_START;
    data_section->s_scnptr = rdata_section->s_scnptr + rdata_section->s_size;
    vaddr = data_section->s_vaddr + data_section->s_size;
    scnptr = data_section->s_scnptr + data_section->s_size;
--- 255,261 ----
    rdata_section->s_size = data_start - DATA_START;
    data_section->s_vaddr = data_start;
    data_section->s_paddr = data_start;
!   data_section->s_size = brk - data_start;
    data_section->s_scnptr = rdata_section->s_scnptr + rdata_section->s_size;
    vaddr = data_section->s_vaddr + data_section->s_size;
    scnptr = data_section->s_scnptr + data_section->s_size;
*** x11fns.c.~1~	Fri Jun 29 15:48:10 1990
--- x11fns.c	Tue Jul 31 10:40:46 1990
***************
*** 33,39 ****
  #include "x11term.h"
  #include "dispextern.h"
  #include "termchar.h"
! #ifdef USG
  #include <time.h>
  #else
  #include <sys/time.h>
--- 33,39 ----
  #include "x11term.h"
  #include "dispextern.h"
  #include "termchar.h"
! #if defined(USG) && ! defined(IRIS_4D)
  #include <time.h>
  #else
  #include <sys/time.h>
*** x11term.c.orig	Sat Jun 30 15:33:02 1990
--- x11term.c	Tue Jul 31 10:33:16 1990
***************
*** 38,44 ****
  
  #include "x11term.h"
  
! #if defined(USG) && ! defined(IBMRTAIX) && !defined(_386ix)
  #include <time.h>
  #else
  #include <sys/time.h>
--- 38,44 ----
  
  #include "x11term.h"
  
! #if defined(USG) && ! defined(IBMRTAIX) && !defined(_386ix) && ! defined(IRIS_4D)
  #include <time.h>
  #else
  #include <sys/time.h>
*** config.h.orig	Tue Jul 31 10:03:45 1990
--- config.h	Tue Jul 31 11:22:24 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-sunos4.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-irix3_3.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-sun3.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-iris4d.h"
  
  /* Load in the conversion definitions if this system
     needs them and the source file being compiled has not
***************
*** 114,119 ****
--- 114,131 ----
     its priority.  */
  
  /* #define HIGHPRI */
+ 
+ /* we use Yellow Pages here, emacs doesn't understand "~/" without this */
+ #undef LIB_STANDARD
+ #define LIB_STANDARD -lsun -lbsd -lc /usr/lib/crtn.o
+ 
+ #define C_OPTIMIZE_SWITCH -O2
+ #define C_DEBUG_SWITCH -O2
+ 
+ /*
+  * enable updating the environment passed to sub-shells
+  */
+ #define MAINTAIN_ENVIRONMENT
  
  /* These are fixes to the gap moving code. The normal setup is to use while
   * loops to move the gap. bcopy() can't be used normally because the regions
*** /dev/null	Tue Jul 31 11:46:29 1990
--- s-irix3_3.h	Tue Jul 31 11:22:15 1990
***************
*** 0 ****
--- 1,202 ----
+ /* Definitions file for GNU Emacs running on Silicon Graphics system 3.6.
+    Copyright (C) 1987 Free Software Foundation, Inc.
+ 
+ This file is part of GNU Emacs.
+ 
+ GNU Emacs is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY.  No author or distributor
+ accepts responsibility to anyone for the consequences of using it
+ or for whether it serves any particular purpose or works at all,
+ unless he says so in writing.  Refer to the GNU Emacs General Public
+ License for full details.
+ 
+ Everyone is granted permission to copy, modify and redistribute
+ GNU Emacs, but only under the conditions described in the
+ GNU Emacs General Public License.   A copy of this license is
+ supposed to have been given to you along with GNU Emacs so you
+ can know your rights and responsibilities.  It should be in a
+ file named COPYING.  Among other things, the copyright notice
+ and this notice must be preserved on all copies.  */
+ 
+ 
+ /*
+  *	Define symbols to identify the version of Unix this is.
+  *	Define all the symbols that apply correctly.
+  */
+ 
+ #define USG
+ #define USG5
+ #define IRIS
+ 
+ /* SYSTEM_TYPE should indicate the kind of system you are using.
+  It sets the Lisp variable system-type.  */
+ 
+ #define SYSTEM_TYPE "silicon-graphics-unix"
+ 
+ /* nomultiplejobs should be defined if your system's shell
+  does not have "job control" (the ability to stop a program,
+  run some other program, then continue the first one).  */
+ 
+ /* #define NOMULTIPLEJOBS */
+ #undef NOMULTIPLEJOBS
+ 
+ /* Default is to set interrupt_input to 0: don't do input buffering within Emacs */
+ 
+ /* #define INTERRUPT_INPUT */
+ 
+ /* Letter to use in finding device name of first pty,
+   if system supports pty's.  'a' means it is /dev/ptya0  */
+ 
+ #define FIRST_PTY_LETTER 'q'
+ 
+ /*
+  *	Define HAVE_TERMIO if the system provides sysV-style ioctls
+  *	for terminal control.
+  */
+ 
+ #define HAVE_TERMIO
+ 
+ /*
+  *	Define HAVE_TIMEVAL if the system supports the BSD style clock values.
+  *	Look in <sys/time.h> for a timeval structure.
+  */
+ 
+ #define HAVE_TIMEVAL
+ 
+ /* `utime' system call doesn't understand timevals.  */
+ 
+ #define IRIS_UTIME
+  
+ /*
+  *	Define HAVE_SELECT if the system supports the `select' system call.
+  */
+ 
+ #define HAVE_SELECT
+ 
+ /*
+  *	Define HAVE_PTYS if the system supports pty devices.
+  */
+ 
+ #define HAVE_PTYS
+ 
+ /* Define HAVE_SOCKETS if system supports 4.2-compatible sockets.  */
+ 
+ #define HAVE_SOCKETS
+ 
+ /*
+  *	Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
+  *      The 4.2 opendir, etc., library functions.
+  */
+ 
+ /* #define NONSYSTEM_DIR_LIBRARY */
+ 
+ /* Define this symbol if your system has the functions bcopy, etc. */
+ 
+ #define BSTRING
+ 
+ /* subprocesses should be defined if you want to
+    have code for asynchronous subprocesses
+    (as used in M-x compile and M-x shell).
+    This is generally OS dependent, and not supported
+    under most USG systems. */
+ 
+ #define subprocesses
+ 
+ /* If your system uses COFF (Common Object File Format) then define the
+    preprocessor symbol "COFF". */
+ 
+ /* #define COFF */
+ 
+ /* define MAIL_USE_FLOCK if the mailer uses flock
+    to interlock access to /usr/spool/mail/$USER.
+    The alternative is that a lock file named
+    /usr/spool/mail/$USER.lock.  */
+ 
+ /* #define MAIL_USE_FLOCK */
+ 
+ /* Define CLASH_DETECTION if you want lock files to be written
+    so that Emacs can tell instantly when you try to modify
+    a file that someone else has modified in his Emacs.  */
+ 
+ /* #define CLASH_DETECTION */
+ 
+ /* We use the Berkeley (and usg5.2.2) interface to nlist.  */
+ 
+ #define NLIST_STRUCT
+ 
+ /* The file containing the kernel's symbol table is called /vmunix.  */
+ 
+ #define KERNEL_FILE "/unix"
+ 
+ /* The symbol in the kernel where the load average is found
+    is named _avenrun.  */
+ 
+ #define LDAV_SYMBOL "avenrun"
+ 
+ 
+ /* Special hacks needed to make Emacs run on this system.  */
+ 
+ /*
+  *	Make the sigsetmask function go away.  Don't know what the
+  *	ramifications of this are, but doesn't seem possible to
+  *	emulate it properly anyway at this point.
+  */
+ 
+ #define sigsetmask(mask)	/* Null expansion */
+ #define sigblock(x) x
+ 
+ /* pre-3.3 Irix defines SIGIO in signal.h, but doesn't implement it. */
+ /* For some reason under Irix 3.3, SIGIO works under termcap driver but not
+    X11. Take your pick. SIGIO is supposed to be slightly faster. */
+ #undef SIGIO
+ 
+ #define C_SWITCH_MACHINE
+ 
+ /* setjmp and longjmp can safely replace _setjmp and _longjmp,
+    but they will run slower.  */
+ 
+ #define _setjmp setjmp
+ #define _longjmp longjmp
+ 
+ /* On USG systems the system calls are interruptable by signals
+  that the user program has elected to catch.  Thus the system call
+  must be retried in these cases.  To handle this without massive
+  changes in the source code, we remap the standard system call names
+  to names for our own functions in sysdep.c that do the system call
+  with retries. */
+ 
+ #define read sys_read
+ #define open sys_open
+ #define write sys_write
+ 
+ #define INTERRUPTABLE_OPEN
+ #define INTERRUPTABLE_IO
+ 
+ /* On USG systems these have different names */
+ 
+ #define index strchr
+ #define rindex strrchr
+ 
+ /* USG systems tend to put everything declared static
+    into the initialized data area, which becomes pure after dumping Emacs.
+    Foil this.  Emacs carefully avoids static vars inside functions.  */
+ 
+ /* #define static */
+ 
+ /* Compiler bug bites on many systems when default ADDR_CORRECT is used.  */
+ 
+ #define ADDR_CORRECT(x) (int)((char *)(x) - (char*)0)
+ 
+ /* some errno.h's don't actually allocate the variable itself */
+ 
+ #define NEED_ERRNO
+ 
+ /*
+  * I want IPC to work (for emacsclient), so I will first try:
+  */
+ #define HAVE_SYSVIPC
+ 
+ /*
+  * Irix 3.3 defines this, and causes an infinite loop when trying to dump.
+  */
+ #define HAVE_GETWD
*** x11fns.c.orig	Fri Jun 29 15:48:10 1990
--- x11fns.c	Tue Jul 31 10:40:46 1990
***************
*** 33,39 ****
  #include "x11term.h"
  #include "dispextern.h"
  #include "termchar.h"
! #ifdef USG
  #include <time.h>
  #else
  #include <sys/time.h>
--- 33,39 ----
  #include "x11term.h"
  #include "dispextern.h"
  #include "termchar.h"
! #if defined(USG) && ! defined(IRIS_4D)
  #include <time.h>
  #else
  #include <sys/time.h>
\Rogue\Monster\
else
  echo "will not over write ./irix3.3-epoch-src.diff"
fi
if `test ! -s ./irix3.3-etc.diff`
then
echo "writing ./irix3.3-etc.diff"
cat > ./irix3.3-etc.diff << '\Rogue\Monster\'
*** loadst.c.orig	Tue Apr 18 18:24:59 1989
--- loadst.c	Fri Jun  1 09:28:32 1990
***************
*** 219,225 ****
--- 219,229 ----
  #ifdef LOAD_AVE_TYPE
        load = load_average (kmem);
        if (load != (LOAD_AVE_TYPE) -1)
+ #ifdef sgi
+ 		printf("%.2f", (double)load / 1024.0);
+ #else /* sgi */
  	printf("%.2f", LOAD_AVE_CVT (load) / 100.0);
+ #endif /* sgi */
  #endif /* LOAD_AVE_TYPE */
  
        printf ("%s",
***************
*** 335,342 ****
--- 339,354 ----
      {
        LOAD_AVE_TYPE avenrun[3];
        avenrun[0] = 0;
+ #ifdef sgi
+ 	  if (lseek(kmem, (long)nl[0].n_value & 0x7fffffff, 0) < 0) {
+ 		  perror("lseek");
+ 		  exit(1);
+ 	  }
+ 	  (void) read(kmem, (char *)avenrun, sizeof(avenrun));
+ #else /* sgi */
        lseek (kmem, (long) nl[0].n_value, 0);
        read (kmem, avenrun, sizeof (avenrun));
+ #endif /* sgi */
        return avenrun[0];
      }
    else
*** Makefile.orig	Sun Jul 30 17:54:45 1989
--- Makefile	Tue Jul 31 09:30:24 1990
***************
*** 1,8 ****
! CFLAGS= -g
  # For Xenix.  Needed for movemail
  #  LOADLIBES= -lx
  # For Iris 4d.  Needed for loadst.
! #  LOADLIBES = -lmld
  
  EXECUTABLES = test-distrib etags ctags loadst make-docfile \
     digest-doc sorted-doc movemail cvtmail fakemail yow env \
--- 1,8 ----
! CFLAGS= -O2
  # For Xenix.  Needed for movemail
  #  LOADLIBES= -lx
  # For Iris 4d.  Needed for loadst.
! LOADLIBES = -lmld
  
  EXECUTABLES = test-distrib etags ctags loadst make-docfile \
     digest-doc sorted-doc movemail cvtmail fakemail yow env \
\Rogue\Monster\
else
  echo "will not over write ./irix3.3-etc.diff"
fi
echo "Finished archive 1 of 1"
exit
--
 Scott Henry <scotth@sgi.com> / Traveller on Dragon Wings
 Information Services,       / Help! My disclaimer is missing!
 Silicon Graphics, Inc      / 'Under-achiever and proud of it!' -- Bart Simpson