pmax.h 4.07 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
/* Machine description file for DEC MIPS machines.

   Copyright (C) 1992, 1999, 2001, 2002, 2003, 2004,
                 2005, 2006, 2007  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, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.  */

Jim Blandy's avatar
Jim Blandy committed
23

Jim Blandy's avatar
Jim Blandy committed
24 25
#include "mips.h"

26
/* The following line tells the configuration script what sort of
Jim Blandy's avatar
Jim Blandy committed
27
   operating system this machine is likely to run.
28
   USUAL-OPSYS="note"
Jim Blandy's avatar
Jim Blandy committed
29 30

NOTE-START
31
The operating system would be either osf1, ultrix, or NetBSD.
Jim Blandy's avatar
Jim Blandy committed
32
NOTE-END  */
Jim Blandy's avatar
Jim Blandy committed
33

34
#ifndef __MIPSEB__
35
#undef WORDS_BIG_ENDIAN
36
#endif
37 38 39
#if defined (__NetBSD__)
#define BROKEN_NOCOMBRELOC
#else
Jim Blandy's avatar
Jim Blandy committed
40 41
#undef LIB_STANDARD
#undef START_FILES
42
#endif
Jim Blandy's avatar
Jim Blandy committed
43 44 45 46
#undef COFF
#undef TERMINFO
#define MAIL_USE_FLOCK
#define HAVE_UNION_WAIT
Jim Blandy's avatar
Jim Blandy committed
47

48 49 50 51

#ifdef MACH
#define START_FILES pre-crt0.o /usr/lib/crt0.o
#else
52
#if !defined (__NetBSD__)
Jim Blandy's avatar
Jim Blandy committed
53
/* This line starts being needed with ultrix 4.0.  */
Jim Blandy's avatar
Jim Blandy committed
54
/* You must delete it for version 3.1.  */
Jim Blandy's avatar
Jim Blandy committed
55
#define START_FILES pre-crt0.o /usr/lib/cmplrs/cc/crt0.o
56
#endif
57
#endif
58

Jim Blandy's avatar
Jim Blandy committed
59 60 61 62 63 64
/* Supposedly the following will overcome a kernel bug.  */
#undef LD_SWITCH_MACHINE
#undef DATA_START
#define DATA_START 0x10000000
#define DATA_SEG_BITS 0x10000000

65 66 67 68
#if 0
/* I don't see any such conflict in Ultrix 4.2, 4.2a, or 4.3.  And
   the relocating allocator is a real win.  -JimB  */

Jim Blandy's avatar
Jim Blandy committed
69 70 71
/* In Ultrix 4.1, XvmsAlloc.o in libX11.a seems to insist
   on defining malloc itself.  This should avoid conflicting with it.  */
#define SYSTEM_MALLOC
72
#endif
Jim Blandy's avatar
Jim Blandy committed
73

74
/* Override what mips.h says about this.  */
75
#if !defined (__NetBSD__)
Jim Blandy's avatar
Jim Blandy committed
76
#undef LINKER
77
#endif
Jim Blandy's avatar
Jim Blandy committed
78

79
#ifdef ultrix
Jim Blandy's avatar
Jim Blandy committed
80 81 82 83
/* 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
84
#endif
Jim Blandy's avatar
Jim Blandy committed
85

86
#ifndef __NetBSD__
87 88
/* mcc@timessqr.gc.cuny.edu says this makes Emacs work with DECnet.  */
#ifdef HAVE_LIBDNET
Richard M. Stallman's avatar
Richard M. Stallman committed
89
#define LIBS_MACHINE -ldnet
90
#endif
Richard M. Stallman's avatar
Richard M. Stallman committed
91

92
/* mcc@timessqr.gc.cuny.edu says it is /vmunix on Ultrix 4.2a.  */
Richard M. Stallman's avatar
Richard M. Stallman committed
93
#undef KERNEL_FILE
94
#define KERNEL_FILE "/vmunix"
95
#endif
96

97
#ifdef ultrix
98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
/* Jim Wilson writes:
   [...] The X11 include files that Dec distributes with Ultrix
   are bogus.

   When __STDC__ is defined (which is true with gcc), the X11 include files
   try to define prototypes.  The prototypes however use types which haven't
   been defined yet, and thus we get syntax/parse errors.

   You can not fix this by changing the include files, because the prototypes
   create circular dependencies, in particular Xutil.h depends on types defined
   in Xlib.h, and Xlib.h depends on types defined in Xutil.h.  So, no matter
   which order you try to include them in, it will still fail.

   Compiling with -DNeedFunctionPrototypes=0 will solve the problem by
   directly inhibiting the bad prototypes.  This could perhaps just be put in
   an a Ultrix configuration file.

   Using the MIT X11 distribution instead of the one provided by Dec will
   also solve the problem, but I doubt you can convince everyone to do this. */
117 118
/* Addendum: the MIT X11 distribution neglects to define certain symbols
   when NeedFunctionPrototypes is 0, but still tries to use them when
Karl Heuer's avatar
Karl Heuer committed
119
   NeedVarargsPrototypes is 1 (which is its default value).  So if we're
120 121 122
   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
123
#endif
124 125 126

/* Enable a fix in process.c.  */
#define SET_CHILD_PTY_PGRP
Miles Bader's avatar
Miles Bader committed
127 128 129

/* arch-tag: 45d5070e-d2b7-479f-b336-3fd497c36e15
   (do not change this comment) */