Subject: Emacs on NetBSD/pmax
To: None <port-pmax@NetBSD.ORG>
From: Erik Bertelsen <erik@sockdev.uni-c.dk>
List: port-pmax
Date: 08/20/1996 14:16:01
I have done my emacs experiments somewhat more carefull this time
with emacs-19.33.

By looking at the configure script, there is no difference between 
running configure with pmax-dec-netbsd1.2. or with mips-dec-netbsd1.2.
In either case the machine will be set to pmax.

Now this looks like a fine choice to me: pmax (and therefore src/m/pmax.h
is used on little endian mips computers, i.e. decstations). m/pmax.h
includes m/mips.h and is therefore a specialization of m/mips.h.

The current status is that with changes to s/netbsd.h, m/mips.h, and
m/pmax.h as indicated in the patches below, emacs compiles with
no changes to other source files.

Emacs does only compile on NetBSD/pmax with the unexec facility disabled.

It runs fine with X -- I have X11R6.1 installed on my DS3100. No I have
no X server, but what the hell -- the machine is located downstairs in
a machine room and I use an X terminal with it.

In the patches below, the patches to mips.h and to netbsd.h are only
included to silence a couple of compiler warnings. The real changes
are all in pmax.h.

I have made definitions to disable the unexec mechanism, but at least
this will enable NetBSD/pmax users to install and run emacs. In the
future, unexec may (should) be added by someone.....

pmax.h really needs a major clean-up. Now it supports ultrix and MACH,
but with conditionals that make it hard to add another system.

I plan to clean up this file further before sending the patches to the
FSF. In particular I don't recommend to use my patched version of
pmax.h with Ultrix before I have verified that my changes don't hurt.

Are anyone aware of any operating system for DEC's mips based computers
other than Ultrix and NetBSD ? Pmax.h tries to cover OSF, but this OS
never got released for the DECstations, only for the Alphas (and Vaxes).

Are anyone aware of any operating system for little-endian MIPS based
computers beyond the ones mentioned above?

regards
Erik Bertelsen

*** mips.h.orig	Mon Aug 19 08:44:48 1996
--- mips.h	Mon Aug 19 16:10:51 1996
***************
*** 120,125 ****
--- 120,126 ----
  /* This machine requires completely different unexec code
     which lives in a separate file.  Specify the file name.  */
  
+ #undef UNEXEC
  #define UNEXEC unexmips.o
  
  /* Describe layout of the address space in an executing process.  */
*** pmax.h.orig	Mon Aug 19 08:31:39 1996
--- pmax.h	Tue Aug 20 09:34:17 1996
***************
*** 7,13 ****
     USUAL-OPSYS="note"  
  
  NOTE-START
! Use -opsystem=osf1 for OSF/1, and -opsystem=bsd4-3 otherwise.
  NOTE-END  */
  
  #undef WORDS_BIG_ENDIAN
--- 7,14 ----
     USUAL-OPSYS="note"  
  
  NOTE-START
! Use -opsystem=ultrix for Ultrix, -opsystem=netbsd for NetBSD, possibly 
! opsystem=bsd4-3 for other systems.
  NOTE-END  */
  
  #undef WORDS_BIG_ENDIAN
***************
*** 27,32 ****
--- 28,41 ----
  #define START_FILES pre-crt0.o /usr/lib/cmplrs/cc/crt0.o
  #endif
  
+ #ifdef __NetBSD__
+ #undef START_FILES
+ #undef RUN_TIME_REMAP
+ #define START_FILES pre-crt0.o /usr/lib/crt0.o
+ #define CANNOT_DUMP
+ #undef UNEXEC
+ #endif /* NetBSD */
+ 
  /* Supposedly the following will overcome a kernel bug.  */
  #undef LD_SWITCH_MACHINE
  #undef DATA_START
***************
*** 45,60 ****
  /* Override what mips.h says about this.  */
  #undef LINKER
  
  /* Ultrix 4.2 (perhaps also 4.1) implements O_NONBLOCK
     but it doesn't work right;
     and it causes hanging in read_process_output.  */
  #define BROKEN_O_NONBLOCK
  
! #if defined (OSF1) || defined (MACH)
  #undef C_ALLOCA
  #define HAVE_ALLOCA
  #endif
  
  /* mcc@timessqr.gc.cuny.edu says this makes Emacs work with DECnet.  */
  #ifdef HAVE_LIBDNET
  #define LIBS_MACHINE -ldnet
--- 54,74 ----
  /* Override what mips.h says about this.  */
  #undef LINKER
  
+ #ifndef __NetBSD__
+ /* should this really be #ifdef ultrix ??? */
  /* Ultrix 4.2 (perhaps also 4.1) implements O_NONBLOCK
     but it doesn't work right;
     and it causes hanging in read_process_output.  */
  #define BROKEN_O_NONBLOCK
+ #endif /* __NetBSD__ */
  
! #ifdef MACH
  #undef C_ALLOCA
  #define HAVE_ALLOCA
  #endif
  
+ #ifdef ultrix
+ 
  /* mcc@timessqr.gc.cuny.edu says this makes Emacs work with DECnet.  */
  #ifdef HAVE_LIBDNET
  #define LIBS_MACHINE -ldnet
***************
*** 64,70 ****
  #undef KERNEL_FILE
  #define KERNEL_FILE "/vmunix"
  
! #ifndef MACH
  /* Jim Wilson writes:
     [...] The X11 include files that Dec distributes with Ultrix
     are bogus.
--- 78,84 ----
  #undef KERNEL_FILE
  #define KERNEL_FILE "/vmunix"
  
! 
  /* Jim Wilson writes:
     [...] The X11 include files that Dec distributes with Ultrix
     are bogus.
***************
*** 90,96 ****
     going to disable non-variadic prototypes, we also need to disable
     variadic prototypes.  --kwzh@gnu.ai.mit.edu */
  #define C_SWITCH_X_MACHINE -DNeedFunctionPrototypes=0 -DNeedVarargsPrototypes=0
! #endif
  
  /* Enable a fix in process.c.  */
  #define SET_CHILD_PTY_PGRP
--- 104,111 ----
     going to disable non-variadic prototypes, we also need to disable
     variadic prototypes.  --kwzh@gnu.ai.mit.edu */
  #define C_SWITCH_X_MACHINE -DNeedFunctionPrototypes=0 -DNeedVarargsPrototypes=0
! 
! #endif /* ultrix */
  
  /* Enable a fix in process.c.  */
  #define SET_CHILD_PTY_PGRP
*** netbsd.h.orig	Mon Aug 19 08:43:58 1996
--- netbsd.h	Tue Aug 20 11:08:31 1996
***************
*** 5,10 ****
--- 5,12 ----
  
  /* For mem-limits.h.  */
  #define BSD4_2
+ #undef BSD
+ #define BSD 199306
  
  #undef KERNEL_FILE
  #undef LDAV_SYMBOL
================end of patches=======================