This commit was generated by cvs2svn to compensate for changes in r1705,
[chise/xemacs-chise.git.1] / src / m / gould.h
1 /* machine description file for Gould PowerNodes with UTX/32 2.0 and 2.1.
2    (See MACHINES for older versions.)
3
4 * NOTE: If you are running a pre-release of UTX/32 2.1 you should #define
5 * RELEASE2_1 in config.h. This may also be necessary with un-updated
6 * official releases of 2.1
7
8    Copyright (C) 1986 Free Software Foundation, Inc.
9
10 This file is part of GNU Emacs.
11
12 GNU Emacs is free software; you can redistribute it and/or modify
13 it under the terms of the GNU General Public License as published by
14 the Free Software Foundation; either version 2, or (at your option)
15 any later version.
16
17 GNU Emacs is distributed in the hope that it will be useful,
18 but WITHOUT ANY WARRANTY; without even the implied warranty of
19 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20 GNU General Public License for more details.
21
22 You should have received a copy of the GNU General Public License
23 along with XEmacs; see the file COPYING.  If not, write to
24 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
25 Boston, MA 02111-1307, USA.  */
26
27 /* Synched up with: FSF 19.31. */
28
29 /* The following line tells the configuration script what sort of 
30    operating system this machine is likely to run.
31    USUAL-OPSYS="note"
32
33 NOTE-START
34 Gould Power Node (-machine=gould -opsystem=bsd4-2 or bsd4-3)
35 (gould.h; s-bsd4-2.h or s-bsd4-3.h)
36
37   18.36 worked on versions 1.2 and 2.0 of the operating system.
38
39   On UTX/32 2.0, use -opsystem=bsd4-3
40
41   On UTX/32 1.2 and UTX/32S 1.0, use -opsystem=bsd4-2 and note that compiling 
42   lib-src/sorted-doc tickles a compiler bug:  remove the -g flag to cc in the 
43   makefile.
44
45   Version 19 incorporates support for releases 2.1 and later of UTX/32.
46   A site running a pre-release of 2.1 should #define RELEASE2_1 in config.h.
47 NOTE-END */
48
49 /* Now define a symbol for the cpu type, if your compiler
50    does not define it automatically */
51
52 #ifndef GOULD
53 #define GOULD
54 #endif
55
56 /* sel is an old preprocessor name on gould machines 
57   - it is no longer needed and interferes with a variable in xmenu.c */
58 #undef sel
59
60 /* Data type of load average, as read out of kmem.  */
61
62 #define LOAD_AVE_TYPE double
63
64 /* Convert that into an integer that is 100 for a load average of 1.0  */
65
66 #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0)
67
68 /* Define CANNOT_DUMP on machines where unexec does not work.
69    Then the function dump-emacs will not be defined
70    and temacs will do (load "loadup") automatically unless told otherwise.  */
71
72 /* #define CANNOT_DUMP */
73
74 /* Define C_ALLOCA if this machine does not support a true alloca
75    and the one written in C should be used instead.
76    Define HAVE_ALLOCA to say that the system provides a properly
77    working alloca function and it should be used.
78    Define neither one if an assembler-language alloca
79    in the file alloca.s should be used.  */
80
81 #define C_ALLOCA
82 #define STACK_DIRECTION -1  /* grows towards lower addresses on Gould UTX/32 */
83
84 /* No need to extend the user stack. */
85
86 /* If this is a 2.1 system, COFF will be predefined by cpp. If it's */
87 /* pre-2.1 COFF won't be defined, which is as it should be. */
88
89 #ifdef COFF
90
91 #define HEADER_INCL_IN_TEXT
92 #define COFF_BSD_SYMBOLS
93
94 /* Seems to be necessary with coff */
95 #define NO_REMAP
96
97 #ifndef GOULD_NP1
98 /* gould-np1.h includes this file */
99 /* keep the old value - don't skip over the headers */
100 #define KEEP_OLD_TEXT_SCNPTR
101 #define KEEP_OLD_PADDR
102 #ifndef RELEASE2_1
103 #define ADJUST_TEXTBASE
104 #endif /*RELEASE2_1*/
105 #endif /* GOULD_NP1 */
106
107 #ifdef IN_UNEXEC
108 /* make Gould NP and PN COFF look like USG COFF */
109 /* PN COFF */
110 #define aouthdr old_exec
111 /* PN COFF doesn't have a data_start or a_dtbase field in its */
112 /* optional header, so substitute a junk field */
113 #define a_dtbase a_ccvers
114 /* Gould COFF */
115 #define magic a_magic
116 #define tsize a_text
117 #define dsize a_data
118 #define bsize a_bss
119 #define entry a_entry
120 #define text_start a_txbase
121 #define data_start a_dtbase
122 #endif /* IN_UNEXEC */
123
124 /* Define how to search all pty names.
125  * This is for UTX 2.1 and greater on PN and all NP versions. It is only
126  * accident that this happens to correspond to the same versions of UTX
127  * as COFF does, but we'll take advantage of that here.
128  */
129
130 /*#define USE_PTY_PAIR*/
131
132 #endif /* COFF */
133
134 /* -g is sometimes broken on the Gould.  */
135
136 #define C_DEBUG_SWITCH
137
138 /* The GOULD machine counts the a.out file header as part of the text.  */
139
140 #define A_TEXT_OFFSET(HDR) sizeof (HDR)
141
142 /* Machine-dependent action when about to dump an executable file.  */
143
144 #ifndef COFF
145 #define ADJUST_EXEC_HEADER   \
146   unexec_text_start = hdr.a_txbase + sizeof (hdr);
147 #endif
148
149 /* We use the system's crt0.o.  Somehow it avoids losing
150    with `environ' the way most standard crt0.o's do.  */
151
152 #define START_FILES "pre-crt0.o /lib/crt0.o"