(terminal-composition-base-character-p): New
[bpt/emacs.git] / src / m / hp9000s300.h
CommitLineData
20c428fd 1/* machine description file for hp9000 series 200 or 300 on either HPUX or BSD.
eb3d11ef
GM
2 Copyright (C) 1985, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
3 2008 Free Software Foundation, Inc.
20c428fd
JB
4
5This file is part of GNU Emacs.
6
eb3d11ef 7GNU Emacs is free software: you can redistribute it and/or modify
20c428fd 8it under the terms of the GNU General Public License as published by
eb3d11ef
GM
9the Free Software Foundation, either version 3 of the License, or
10(at your option) any later version.
20c428fd
JB
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
eb3d11ef 18along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
20c428fd
JB
19
20
177c0ea7 21/* The following line tells the configuration script what sort of
20c428fd
JB
22 operating system this machine is likely to run.
23 USUAL-OPSYS="note"
24
25NOTE-START
26HP 9000 series 200 or 300 (-machine=hp9000s300)
27
28 These machines are 68000-series CPUs running HP-UX
29 (a derivative of sysV with some BSD features) or BSD 4.3 ported by Utah.
30
31 If you're running HP-UX, specify `-opsystem=hpux'.
b7cceaf1 32 If you're running BSD, specify `-opsystem=bsd4-3'.
20c428fd
JB
33NOTE-END */
34
7b89707c 35/* I don't understand why we have to do this at all! -JimB */
7b89707c 36
b7cceaf1 37/* Define NOMULTIPLEJOBS on versions of HPUX before 6.5. */
20c428fd
JB
38
39/* #define NOMULTIPLEJOBS */
40
41/* Define this symbol if you are running a version of HP-UX
42 which predates version 6.01 */
43
44/* #define HPUX_5 */
45
22e9fe24 46/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
74d3f806
KH
47 is the most significant byte. */
48
49#define WORDS_BIG_ENDIAN
50
20c428fd
JB
51/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
52 * group of arguments and treat it as an array of the arguments. */
53
54/* #define NO_ARG_ARRAY */
55
56/* Define WORD_MACHINE if addresses and such have
57 * to be corrected before they can be used as byte counts. */
58
59/* #define WORD_MACHINE */
60
20c428fd
JB
61/* Now define a symbol for the cpu type, if your compiler
62 does not define it automatically. */
63
64#ifndef hp9000s300
65#define hp9000s300
66#endif
67
68/* Use type int rather than a union, to represent Lisp_Object */
69/* This is desirable for most machines. */
70
71#define NO_UNION_TYPE
72
73/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
74 the 24-bit bit field into an int. In other words, if bit fields
75 are always unsigned.
76
77 If you use NO_UNION_TYPE, this flag does not matter. */
78
79#define EXPLICIT_SIGN_EXTEND
80
81/* Define CANNOT_DUMP on machines where unexec does not work.
82 Then the function dump-emacs will not be defined
83 and temacs will do (load "loadup") automatically unless told otherwise. */
84
85/* #define CANNOT_DUMP */
86
87/* Define VIRT_ADDR_VARIES if the virtual addresses of
88 pure and impure space as loaded can vary, and even their
89 relative order cannot be relied on.
90
91 Otherwise Emacs assumes that text space precedes data space,
92 numerically. */
93
94/* #define VIRT_ADDR_VARIES */
95\f
eb8c3be9 96/* For University of Utah 4.3bsd implementation on HP300s.
20c428fd
JB
97 The #ifndef __GNUC__ definitions are required for the "standard" cc,
98 a very old, brain-dead version of PCC. */
99
100#ifdef BSD4_3
b7cceaf1 101
20c428fd
JB
102/* Tell crt0.c that this is an ordinary 68020. */
103#undef hp9000s300
b7cceaf1
JB
104#define m68000
105
20c428fd
JB
106#define CRT0_DUMMIES bogus_a6,
107
20c428fd
JB
108#ifndef __GNUC__
109#define LIBS_DEBUG /* don't have -lg that works */
110#define C_DEBUG_SWITCH /* don't support -g */
111#endif
112
113#undef LOAD_AVE_TYPE
114#undef LOAD_AVE_CVT
115#define LOAD_AVE_TYPE long
116#define LOAD_AVE_CVT(x) ((int) (((double) (x)) / 2048.0 * 100.0))
117
118#endif /* BSD4_3 */
119\f
120#ifndef BSD4_3
121/* The following definitions are for HPUX only. */
122
123/* The symbol in the kernel where the load average is found
124 is named _avenrun on this machine. */
125
126#define LDAV_SYMBOL "_avenrun"
127
128/* Data type of load average, as read out of kmem. */
129
130#define LOAD_AVE_TYPE double
131
132/* Convert that into an integer that is 100 for a load average of 1.0 */
133
134#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
135
136/* This library is needed with -g, on the 200/300 only. */
137
138#if !defined(__GNUC__) || defined(__HPUX_ASM__)
139#define LIBS_DEBUG /usr/lib/end.o
140#endif
141
0aaa80cc
RS
142/* Need a TEXT_START. On the HP9000/s300 that is 0. */
143#ifdef __GNUC__
144#define TEXT_START 0
145#endif
146
20c428fd
JB
147/* The symbol FIONREAD is defined, but the feature does not work
148 on the 200/300. */
149
150#define BROKEN_FIONREAD
151
152/* In older versions of hpux, for unknown reasons, S_IFLNK is defined
153 even though symbolic links do not exist.
154 Make sure our conditionals based on S_IFLNK are not confused.
155
156 Here we assume that stat.h is included before config.h
157 so that we can override it here.
158
159 Version 6 of HP-UX has symbolic links. */
160
161#ifdef HPUX_5
162#undef S_IFLNK
163#endif
164
165/* Define the BSTRING functions in terms of the sysV functions.
b7cceaf1
JB
166 Version 6 of HP-UX supplies these in the BSD library,
167 but that library has reported bugs in `signal'. */
20c428fd 168
b7cceaf1 169/* #ifdef HPUX_5 */
20c428fd
JB
170#define bcopy(a,b,s) memcpy (b,a,s)
171#define bzero(a,s) memset (a,0,s)
172#define bcmp memcmp
b7cceaf1 173/* #endif */
20c428fd
JB
174
175/* On USG systems these have different names.
b7cceaf1
JB
176 Version 6 of HP-UX supplies these in the BSD library,
177 which we currently want to avoid using. */
20c428fd 178
b7cceaf1 179/* #ifdef HPUX_5 */
20c428fd
JB
180#define index strchr
181#define rindex strrchr
b7cceaf1 182/* #endif */
20c428fd
JB
183
184/* Define C_SWITCH_MACHINE to be +X if you want the s200/300
185 * Emacs to run on both 68010 and 68020 based hp-ux's.
186 *
187 * Define OLD_HP_ASSEMBLER if you have an ancient assembler
188 *
189 * Define HPUX_68010 if you are using the new assembler but
190 * compiling for a s200 (upgraded) or s310. 68010 based
191 * processor without 68881.
192 */
193
194/* These switches increase the size of some internal C compiler tables.
195 They are required for compiling the X11 interface files. */
196
197#ifndef HPUX_5
198#ifndef __GNUC__
199#define C_SWITCH_MACHINE -Wc,-Nd4000,-Ns3000
200#endif
201#endif
202
20c428fd
JB
203/* Define NEED_BSDTTY if you have such. */
204
205#ifndef NOMULTIPLEJOBS
206#define NEED_BSDTTY
207#endif
208
b7cceaf1 209#endif /* not BSD4_3 */
ab5796a9
MB
210
211/* arch-tag: 6e0001a5-ed62-4258-9235-204348f6bdb9
212 (do not change this comment) */