Commit | Line | Data |
---|---|---|
9a446b3c GM |
1 | /* Machine description file for DEC MIPS machines. |
2 | ||
3 | Copyright (C) 1992, 1999, 2001, 2002, 2003, 2004, | |
4 | 2005, 2006, 2007 Free Software Foundation, Inc. | |
5 | ||
6 | This file is part of GNU Emacs. | |
7 | ||
8 | GNU Emacs is free software; you can redistribute it and/or modify | |
9 | it under the terms of the GNU General Public License as published by | |
4a9f99bd | 10 | the Free Software Foundation; either version 3, or (at your option) |
9a446b3c GM |
11 | any later version. |
12 | ||
13 | GNU Emacs is distributed in the hope that it will be useful, | |
14 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | GNU General Public License for more details. | |
17 | ||
18 | You should have received a copy of the GNU General Public License | |
19 | along with GNU Emacs; see the file COPYING. If not, write to | |
20 | the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | |
21 | Boston, MA 02110-1301, USA. */ | |
22 | ||
ec558adc | 23 | |
20c428fd JB |
24 | #include "mips.h" |
25 | ||
177c0ea7 | 26 | /* The following line tells the configuration script what sort of |
20c428fd | 27 | operating system this machine is likely to run. |
177c0ea7 | 28 | USUAL-OPSYS="note" |
ec558adc JB |
29 | |
30 | NOTE-START | |
9939d191 | 31 | The operating system would be either osf1, ultrix, or NetBSD. |
ec558adc | 32 | NOTE-END */ |
20c428fd | 33 | |
9e2702a6 | 34 | #ifndef __MIPSEB__ |
74d3f806 | 35 | #undef WORDS_BIG_ENDIAN |
9e2702a6 | 36 | #endif |
c3f5c825 EZ |
37 | #if defined (__NetBSD__) |
38 | #define BROKEN_NOCOMBRELOC | |
39 | #else | |
ec558adc JB |
40 | #undef LIB_STANDARD |
41 | #undef START_FILES | |
c3f5c825 | 42 | #endif |
ec558adc JB |
43 | #undef COFF |
44 | #undef TERMINFO | |
45 | #define MAIL_USE_FLOCK | |
46 | #define HAVE_UNION_WAIT | |
20c428fd | 47 | |
a46849a8 RS |
48 | |
49 | #ifdef MACH | |
50 | #define START_FILES pre-crt0.o /usr/lib/crt0.o | |
51 | #else | |
c3f5c825 | 52 | #if !defined (__NetBSD__) |
20c428fd | 53 | /* This line starts being needed with ultrix 4.0. */ |
ec558adc | 54 | /* You must delete it for version 3.1. */ |
20c428fd | 55 | #define START_FILES pre-crt0.o /usr/lib/cmplrs/cc/crt0.o |
a46849a8 | 56 | #endif |
c3f5c825 | 57 | #endif |
9939d191 | 58 | |
20c428fd JB |
59 | /* Supposedly the following will overcome a kernel bug. */ |
60 | #undef LD_SWITCH_MACHINE | |
61 | #undef DATA_START | |
62 | #define DATA_START 0x10000000 | |
63 | #define DATA_SEG_BITS 0x10000000 | |
64 | ||
dc9d84de JB |
65 | #if 0 |
66 | /* I don't see any such conflict in Ultrix 4.2, 4.2a, or 4.3. And | |
67 | the relocating allocator is a real win. -JimB */ | |
68 | ||
20c428fd JB |
69 | /* In Ultrix 4.1, XvmsAlloc.o in libX11.a seems to insist |
70 | on defining malloc itself. This should avoid conflicting with it. */ | |
71 | #define SYSTEM_MALLOC | |
dc9d84de | 72 | #endif |
ec558adc | 73 | |
a46849a8 | 74 | /* Override what mips.h says about this. */ |
18975f44 | 75 | #if !defined (__NetBSD__) |
ec558adc | 76 | #undef LINKER |
18975f44 | 77 | #endif |
ec558adc | 78 | |
9939d191 | 79 | #ifdef ultrix |
ec558adc JB |
80 | /* Ultrix 4.2 (perhaps also 4.1) implements O_NONBLOCK |
81 | but it doesn't work right; | |
82 | and it causes hanging in read_process_output. */ | |
83 | #define BROKEN_O_NONBLOCK | |
9939d191 | 84 | #endif |
ec558adc | 85 | |
9939d191 | 86 | #ifndef __NetBSD__ |
8f2d5456 JB |
87 | /* mcc@timessqr.gc.cuny.edu says this makes Emacs work with DECnet. */ |
88 | #ifdef HAVE_LIBDNET | |
5a241166 | 89 | #define LIBS_MACHINE -ldnet |
8f2d5456 | 90 | #endif |
069ca42f | 91 | |
9f717104 | 92 | /* mcc@timessqr.gc.cuny.edu says it is /vmunix on Ultrix 4.2a. */ |
069ca42f | 93 | #undef KERNEL_FILE |
9f717104 | 94 | #define KERNEL_FILE "/vmunix" |
9939d191 | 95 | #endif |
9b4d86fc | 96 | |
9939d191 | 97 | #ifdef ultrix |
9b4d86fc JB |
98 | /* Jim Wilson writes: |
99 | [...] The X11 include files that Dec distributes with Ultrix | |
100 | are bogus. | |
101 | ||
102 | When __STDC__ is defined (which is true with gcc), the X11 include files | |
103 | try to define prototypes. The prototypes however use types which haven't | |
104 | been defined yet, and thus we get syntax/parse errors. | |
105 | ||
106 | You can not fix this by changing the include files, because the prototypes | |
107 | create circular dependencies, in particular Xutil.h depends on types defined | |
108 | in Xlib.h, and Xlib.h depends on types defined in Xutil.h. So, no matter | |
109 | which order you try to include them in, it will still fail. | |
110 | ||
111 | Compiling with -DNeedFunctionPrototypes=0 will solve the problem by | |
112 | directly inhibiting the bad prototypes. This could perhaps just be put in | |
113 | an a Ultrix configuration file. | |
114 | ||
115 | Using the MIT X11 distribution instead of the one provided by Dec will | |
116 | also solve the problem, but I doubt you can convince everyone to do this. */ | |
0f800451 KH |
117 | /* Addendum: the MIT X11 distribution neglects to define certain symbols |
118 | when NeedFunctionPrototypes is 0, but still tries to use them when | |
8e6208c5 | 119 | NeedVarargsPrototypes is 1 (which is its default value). So if we're |
0f800451 KH |
120 | going to disable non-variadic prototypes, we also need to disable |
121 | variadic prototypes. --kwzh@gnu.ai.mit.edu */ | |
122 | #define C_SWITCH_X_MACHINE -DNeedFunctionPrototypes=0 -DNeedVarargsPrototypes=0 | |
a46849a8 | 123 | #endif |
0d4c1a6e RS |
124 | |
125 | /* Enable a fix in process.c. */ | |
126 | #define SET_CHILD_PTY_PGRP | |
ab5796a9 MB |
127 | |
128 | /* arch-tag: 45d5070e-d2b7-479f-b336-3fd497c36e15 | |
129 | (do not change this comment) */ |