diff -ruN mule-2.3.orig/config.guess mule-2.3-hiuxmpp/config.guess
--- mule-2.3.orig/config.guess	Mon Sep 12 10:15:34 1994
+++ mule-2.3-hiuxmpp/config.guess	Wed Jan 24 13:45:28 1996
@@ -57,6 +57,9 @@
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
 	echo arm-acorn-riscix${UNAME_RELEASE}
 	exit 0;;
+    SR2001:HI-UX/MPP:*:*)
+        echo hppa1.1-hitachi-hiuxmpp
+        exit 0;;
     Pyramid*:OSx*:*:*)
 	if test "`(/bin/universe) 2>/dev/null`" = att ; then
 		echo pyramid-pyramid-sysv3
diff -ruN mule-2.3.orig/config.sub mule-2.3-hiuxmpp/config.sub
--- mule-2.3.orig/config.sub	Fri Oct 21 13:17:29 1994
+++ mule-2.3-hiuxmpp/config.sub	Mon Jan 22 10:57:07 1996
@@ -71,6 +71,9 @@
 		os=
 		basic_machine=$1
 		;;
+        -hiuxmpp)
+                os=-hiuxmpp
+                ;;
 	-hiux*)
 		os=-hiuxwe2
 		;;
@@ -251,6 +254,10 @@
 		basic_machine=tron-gmicro
 		os=-sysv
 		;;
+        hiuxmpp)
+                basic_machine=hppa1.1-hitachi
+                os=-hiuxmpp
+                ;;
 	h3050r* | hiux*)
 		basic_machine=hppa1.1-hitachi
 		os=-hiuxwe2
diff -ruN mule-2.3.orig/configure mule-2.3-hiuxmpp/configure
--- mule-2.3.orig/configure	Mon Jun  5 10:11:38 1995
+++ mule-2.3-hiuxmpp/configure	Tue Jan 23 16:35:51 1996
@@ -775,7 +775,10 @@
   m68k-harris-cxux* )
     machine=nh3000 opsys=cxux
   ;;
-
+  ## HI-UX/MPP
+  hppa1.1-hitachi-hiuxmpp )
+    machine=sr2k opsys=hiuxmpp
+  ;;
   ## Honeywell XPS100
   xps*-honeywell-sysv* )
     machine=xps100 opsys=usg5-2
diff -ruN mule-2.3.orig/configure.in mule-2.3-hiuxmpp/configure.in
--- mule-2.3.orig/configure.in	Sun Jun  4 17:00:48 1995
+++ mule-2.3-hiuxmpp/configure.in	Wed Jan 24 12:22:45 1996
@@ -779,7 +779,10 @@
   m68k-harris-cxux* )
     machine=nh3000 opsys=cxux
   ;;
-
+  ## HI-UX/MPP
+  hppa1.1-hitachi-hiuxmpp )
+    machine=sr2k opsys=hiuxmpp
+  ;;
   ## Honeywell XPS100
   xps*-honeywell-sysv* )
     machine=xps100 opsys=usg5-2
diff -ruN mule-2.3.orig/src/m/sr2k.h mule-2.3-hiuxmpp/src/m/sr2k.h
--- mule-2.3.orig/src/m/sr2k.h	Thu Jan  1 09:00:00 1970
+++ mule-2.3-hiuxmpp/src/m/sr2k.h	Wed Jan 24 15:53:43 1996
@@ -0,0 +1,152 @@
+/* machine description file for SR2001 series machines.
+   Copyright (C) 1987 Free Software Foundation, Inc.
+
+This file is part of GNU Emacs.
+
+GNU Emacs is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Emacs is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs; see the file COPYING.  If not, write to
+the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
+
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="hiuxmpp"  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16		/* Number of bits in a short */
+
+#define INTBITS 32		/* Number of bits in an int */
+
+#define LONGBITS 32		/* Number of bits in a long */
+
+/* #define BIG_ENDIAN */
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+#define NO_ARG_ARRAY
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+#undef WORD_MACHINE
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines.  */
+
+#define NO_UNION_TYPE
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+   the 24-bit bit field into an int.  In other words, if bit fields
+   are always unsigned.
+
+   If you use NO_UNION_TYPE, this flag does not matter.  */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* Data type of load average, as read out of kmem.  */
+
+#define LOAD_AVE_TYPE double
+
+/* Convert that into an integer that is 100 for a load average of 1.0  */
+
+#define LOAD_AVE_CVT(x) ((int) (x * 100.0))
+
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+
+#undef CANNOT_DUMP
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+
+#define VIRT_ADDR_VARIES
+
+/* Define C_ALLOCA if this machine does not support a true alloca
+   and the one written in C should be used instead.
+   Define HAVE_ALLOCA to say that the system provides a properly
+   working alloca function and it should be used.
+   Define neither one if an assembler-language alloca
+   in the file alloca.s should be used.  */
+
+#define C_ALLOCA
+
+
+/* the data segment on this machine always starts at address 0x40000000. */
+
+#define DATA_SEG_BITS 0x40000000
+
+#define VALBITS    26
+#define GCTYPEBITS 5
+
+#define DATA_START    0x40000000
+#define TEXT_START    0x00000000
+
+#define STACK_DIRECTION 1 
+
+/* Define NO_REMAP if memory segmentation makes it not work well
+   to change the boundary between the text section and data section
+   when Emacs is dumped.  If you define this, the preloaded Lisp
+   code will not be sharable; but that's better than failing completely.  */
+
+#define NO_REMAP
+
+/* This machine requires completely different unexec code
+   which lives in a separate file.  Specify the file name.  */
+
+#define UNEXEC unexhp9k800.o
+
+#define LIBS_MACHINE
+#define LIBS_DEBUG
+
+/* The standard definitions of these macros would work ok,
+   but these are faster because the constants are short. */
+   
+
+#define XUINT(a) (((unsigned)(a) << INTBITS-VALBITS) >> INTBITS-VALBITS)
+
+#define XSET(var, type, ptr) \
+   ((var) = ((int)(type) << VALBITS) + (((unsigned) (ptr) << INTBITS-VALBITS) >> INTBITS-VALBITS))
+
+#define XSETINT(a, b)  XSET(a, XTYPE(a), b)
+#define XSETUINT(a, b) XSET(a, XTYPE(a), b)
+#define XSETPNTR(a, b) XSET(a, XTYPE(a), b)
+#define MARKBIT (1U << (VALBITS + GCTYPEBITS))
+#define XMARKBIT(a) ((a) < 0)
+#define XSETMARKBIT(a,b) ((a) = ((b) ? (a)|MARKBIT : (a) & ~MARKBIT))
+
+/* no underscore please */
+#define CPTIME_SYMBOL "cp_time"
+#define DKXFER_SYMBOL "dk_xfer"
+
+
+/* Define the BSTRING functions in terms of the sysV functions. */
+
+#ifndef HAVE_BCOPY
+#define bcopy(a,b,s)	memcpy (b,a,s)
+#define bzero(a,s)	memset (a,0,s)
+#define bcmp		memcmp
+#endif
+
+/* On HI-UX/MPP systems these have different names. */
+
+#define index strchr
+#define rindex strrchr
diff -ruN mule-2.3.orig/src/process.c mule-2.3-hiuxmpp/src/process.c
--- mule-2.3.orig/src/process.c Sat Jul 15 23:30:43 1995
+++ mule-2.3-hiuxmpp/src/process.c      Mon Jan 29 13:41:26 1996
@@ -448,7 +448,7 @@
      end of the ptys.  */
   int failed_count = 0;

-#ifdef OSF1
+#if defined (OSF1) && ! defined (HMPP)
   int dummyfd;
   /* use osf pty support for more pty channels */
   if (openpty(&fd, &dummyfd, pty_name, 0, 0) < 0)
diff -ruN mule-2.3.orig/src/regex19.c mule-2.3-hiuxmpp/src/regex19.c
--- mule-2.3.orig/src/regex19.c	Tue Jun 27 20:21:27 1995
+++ mule-2.3-hiuxmpp/src/regex19.c	Mon Jan 22 11:34:37 1996
@@ -3275,7 +3275,7 @@
 	    int offset;			/* for charsetm */
 
 #ifdef GENERATE_CHARSETM
-	    offset = ((enum regexpcode) p[-1] == charsetm)? *p++: 0;
+	    offset = ((re_opcode_t) p[-1] == charsetm)? *p++: 0;
 #else
 	    offset = 0;
 #endif
@@ -3327,7 +3327,7 @@
 	    int offset;
   
 #ifdef GENERATE_CHARSETM
-	    offset = ((enum regexpcode) p[-1] == charsetm_not)? *p++: 0;
+	    offset = ((re_opcode_t) p[-1] == charsetm_not)? *p++: 0;
 #else
 	    offset = 0;
 #endif
diff -ruN mule-2.3.orig/src/s/hiuxmpp.h mule-2.3-hiuxmpp/src/s/hiuxmpp.h
--- mule-2.3.orig/src/s/hiuxmpp.h	Thu Jan  1 09:00:00 1970
+++ mule-2.3-hiuxmpp/src/s/hiuxmpp.h	Mon Jan 29 10:03:26 1996
@@ -0,0 +1,62 @@
+/* Definitions file for GNU Emacs running on HI-UX/MPP systems.
+   Copyright (C) 1985, 1986 Free Software Foundation, Inc.
+
+This file is part of GNU Emacs.
+
+GNU Emacs is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Emacs is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs; see the file COPYING.  If not, write to
+the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
+
+#define HMPP
+
+/* HI-UX/MPP is mostly OSF1 compatible. */
+
+#define OSF1
+#if 0
+#define DEC /* For DXK_Remove */
+#endif
+
+#define BSD 198911     /* system version (year & month) */
+#define DBL_DIG 15     /* same as the definition of <float.h> */
+#include "bsd4-3.h"
+
+/* Identify OSF1 for the m- files.  */
+
+/* Define _BSD to tell the include files we're running under
+   the BSD universe and not the SYSV universe.  */
+
+#define C_SWITCH_SYSTEM	-D_BSD
+#define LIBS_SYSTEM	-lbsd
+#define LD_SWITCH_SYSTEM  /* linker of HI-UX/MPP doesn't have -X option */
+
+/* To avoid to include the non-existant header file <sys/vlimit.h>,
+    we define BSD4_2.
+    This definition does not mean that the OS is based on BSD 4.2.  */
+#define BSD4_2
+
+#define read sys_read
+#define write sys_write
+#define open sys_open
+#define close sys_close
+
+#define INTERRUPTIBLE_OPEN
+#define INTERRUPTIBLE_CLOSE
+#define INTERRUPTIBLE_IO
+
+#define SYSV_SYSTEM_DIR
+
+#undef KERNEL_FILE
+#define KERNEL_FILE "/mach_kernel"
+
+#undef LDAV_SYMBOL
+#define LDAV_SYMBOL "avenrun"
