comparison src/m/alpha.h @ 255:084402c475ba r20-5b26

Import from CVS: tag r20-5b26
author cvs
date Mon, 13 Aug 2007 10:21:18 +0200
parents 2d532a89d707
children 19dcec799385
comparison
equal deleted inserted replaced
254:e92abcaa252b 255:084402c475ba
1 /* machine description file For the alpha chip. 1 /* machine description file For the alpha chip.
2 Copyright (C) 1994 Free Software Foundation, Inc. 2 Copyright (C) 1994 Free Software Foundation, Inc.
3 3
4 This file is part of GNU Emacs. 4 This file is part of XEmacs.
5 5
6 GNU Emacs is free software; you can redistribute it and/or modify 6 GNU Emacs is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 1, or (at your option) 8 the Free Software Foundation; either version 1, or (at your option)
9 any later version. 9 any later version.
16 You should have received a copy of the GNU General Public License 16 You should have received a copy of the GNU General Public License
17 along with XEmacs; see the file COPYING. If not, write to 17 along with XEmacs; see the file COPYING. If not, write to
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA. */ 19 Boston, MA 02111-1307, USA. */
20 20
21 /* Synched up with: FSF 19.31. */
22 21
23 /* The following line tells the configuration script what sort of 22 #ifdef LINUX
24 operating system this machine is likely to run. 23 # define SYSTEM_MALLOC
25 USUAL-OPSYS="note" 24 #endif
26
27 NOTE-START
28 Use -opsystem=osf1
29 NOTE-END
30
31 */
32
33 #define DEC_ALPHA /* Digital Alpha AXP */
34
35 /* Define WORD_MACHINE if addresses and such have
36 * to be corrected before they can be used as byte counts. */
37
38 /* #define WORD_MACHINE */
39
40 /* XEmacs addition: is this necessary? */
41
42 /* XEmacs: Apparently not Andrew Cohen 8/24/95 */
43 /* Define how to take a char and sign-extend into an int.
44 On machines where char is signed, this is a no-op. */
45
46 /* #define SIGN_EXTEND_CHAR(c) ((signed char)(c)) */
47
48 /* Now define a symbol for the cpu type, if your compiler
49 does not define it automatically:
50 Ones defined so far include vax, m68000, ns16000, pyramid,
51 orion, tahoe, APOLLO and many others */
52
53 /* __alpha defined automatically */
54
55
56 /* Use type EMACS_INT rather than a union, to represent Lisp_Object */
57 /* This is desirable for most machines. */
58
59 /* XEmacs change: something is not quite right with this defined. */
60 /* I'm sure this is because VALBITS is defined to be 28 instead of 60.
61 --ben */
62 #undef NO_UNION_TYPE
63
64 /* Define the type to use. */
65 #define EMACS_INT long
66 #define EMACS_UINT unsigned long
67 #define SPECIAL_EMACS_INT
68
69 /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
70 the bit field into an int. In other words, if bit fields
71 are always unsigned.
72
73 If you use NO_UNION_TYPE, this flag does not matter. */
74
75 #define EXPLICIT_SIGN_EXTEND
76
77 /* Data type of load average, as read out of kmem. */
78 /* Load average requires special crocks. Version 19 has them.
79 For now, don't define this. */
80
81 #define LOAD_AVE_TYPE long
82
83 /* Convert that into an integer that is 100 for a load average of 1.0 */
84
85 #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
86
87 /* Define CANNOT_DUMP on machines where unexec does not work.
88 Then the function dump-emacs will not be defined
89 and temacs will do (load "loadup") automatically unless told otherwise. */
90
91 /* #define CANNOT_DUMP */
92
93 /* Define VIRT_ADDR_VARIES if the virtual addresses of
94 pure and impure space as loaded can vary, and even their
95 relative order cannot be relied on.
96
97 Otherwise Emacs assumes that text space precedes data space,
98 numerically. */
99
100 /* #define VIRT_ADDR_VARIES */
101
102 /* Define C_ALLOCA if this machine does not support a true alloca
103 and the one written in C should be used instead.
104 Define HAVE_ALLOCA to say that the system provides a properly
105 working alloca function and it should be used.
106 Define neither one if an assembler-language alloca
107 in the file alloca.s should be used. */
108
109 #define HAVE_ALLOCA
110
111 /* GNU malloc and the relocating allocator do not work together
112 with X. [Who wrote that?] */
113
114 /* May 1995: reportedly [Rainer Schoepf <schoepf@uni-mainz.de>] both the
115 system and the gnu malloc system work with "alpha-dec-osf3.0" and
116 "alpha-dec-osf3.2". */
117
118 /* May 1995: it seems to me [Morten Welinder <terra@diku.dk>] that both
119 mallocs work with "alpha-dec-osf2.0", but I daren't break anything
120 right now. Feel free to play if you want. */
121
122 /* #define SYSTEM_MALLOC */
123
124 /* Define NO_REMAP if memory segmentation makes it not work well
125 to change the boundary between the text section and data section
126 when Emacs is dumped. If you define this, the preloaded Lisp
127 code will not be sharable; but that's better than failing completely. */
128
129 /* #define NO_REMAP */
130
131 /* Some really obscure 4.2-based systems (like Sequent DYNIX)
132 * do not support asynchronous I/O (using SIGIO) on sockets,
133 * even though it works fine on tty's. If you have one of
134 * these systems, define the following, and then use it in
135 * config.h (or elsewhere) to decide when (not) to use SIGIO.
136 *
137 * You'd think this would go in an operating-system description file,
138 * but since it only occurs on some, but not all, BSD systems, the
139 * reasonable place to select for it is in the machine description
140 * file.
141 */
142
143 /* #define NO_SOCK_SIGIO */
144
145
146 #define HAVE_X11R4
147 #define HAVE_X11R5
148
149
150 /* Describe layout of the address space in an executing process. */
151
152 #define TEXT_START 0x120000000
153 #define DATA_START 0x140000000
154
155 #if 0 /* #### XEmacs: see below */
156 /* This is necessary for mem-limits.h, so that start_of_data gives
157 the correct value */
158 #define DATA_SEG_BITS 0x140000000
159 #endif /* 0 */
160 25
161 #ifdef OSF1 26 #ifdef OSF1
162 #define ORDINARY_LINK 27 # define ORDINARY_LINK
163 #endif /* OSF1 */ 28 #endif
164 29
165 #if 0 /* Rainer Schoepf <schoepf@uni-mainz.de> says this loses with X11R6 30 #ifndef __ELF__
166 since it has only shared libraries. */ 31 /* Describe layout of the address space in an executing process. */
167 #ifndef __GNUC__ 32 # define TEXT_START 0x120000000
168 /* This apparently is for the system ld as opposed to Gnu ld. */ 33 # define DATA_START 0x140000000
169 #ifdef OSF1 34 /* The program to be used for unexec. */
170 #define LD_SWITCH_MACHINE "-non_shared" 35 # define UNEXEC unexalpha.o
171 #endif /* OSF1 */ 36 #endif
172 #endif /* not __GNUC__ */
173 #endif /* 0 */
174
175 #ifdef OSF1
176 #define LIBS_DEBUG
177 #define START_FILES "pre-crt0.o "
178 #endif /* OSF1 */
179
180 #ifdef LINUX
181 /* This controls a conditional in main. */
182 #define LINUX_SBRK_BUG
183 #endif /* LINUX */
184
185 /* The program to be used for unexec. */
186
187 #define UNEXEC "unexalpha.o"
188
189 #if 0
190
191 /* XEmacs -- removed code to define XINT, etc. This gets
192 correctly handled automatically. */
193
194 /* Declare malloc and realloc in a way that is clean.
195 But not in makefiles! */
196
197 #ifndef NOT_C_CODE
198 /* We need these because pointers are larger than the default ints. */
199 #include <alloca.h>
200 #endif /* not NOT_C_CODE */
201
202 #endif /* 0 */
203
204 #ifdef OSF1
205 #define PTY_ITERATION for (i = 0; i < 1; i++) /* ick */
206 #define PTY_NAME_SPRINTF /* none */
207 #define PTY_TTY_NAME_SPRINTF /* none */
208 #define PTY_OPEN \
209 do \
210 { \
211 int dummy; \
212 int mask = sigsetmask (SIGCHLD); \
213 if (-1 == openpty (&fd, &dummy, pty_name, 0, 0)) \
214 fd = -1; \
215 sigsetmask (mask); \
216 close (dummy); \
217 } \
218 while (0)
219 #endif /* OSF1 */
220
221 #ifdef linux
222 #define COFF
223 #define TEXT_END ({ extern int _etext; &_etext; })
224 #define DATA_END ({ extern int _EDATA; &_EDATA; })
225 #endif /* linux */
226
227 /* XEmacs: The Dec CC compiler (but apparently not GCC, which uses different
228 macros due to its own compiler bug) breaks spectacularly
229 when MACROIZE_ERROR_CHECKING is turned on. */
230 #define BROKEN_MACROIZE_ERROR_CHECKING
231
232 /* XEmacs: from Andrew Cohen based on this comment found in <termio.h>:
233
234 Unfortunately System V and POSIX have different values for some of
235 the defines. So we have to perform the following kluge which
236 redefines the V___ values for termio. This means you cannot do
237 ioctls using termios and termio in the same source file.
238 */
239 /* #define NO_TERMIO */ /* mrb */