Commit | Line | Data |
---|---|---|
b061d5f1 | 1 | /* machine description file For the alpha chip. |
eb3d11ef GM |
2 | Copyright (C) 1994, 1997, 1999, 2001, 2002, 2003, 2004, 2005, 2006, |
3 | 2007, 2008 Free Software Foundation, Inc. | |
b061d5f1 RS |
4 | |
5 | This file is part of GNU Emacs. | |
6 | ||
eb3d11ef | 7 | GNU Emacs is free software: you can redistribute it and/or modify |
b061d5f1 | 8 | it under the terms of the GNU General Public License as published by |
eb3d11ef GM |
9 | the Free Software Foundation, either version 3 of the License, or |
10 | (at your option) any later version. | |
b061d5f1 RS |
11 | |
12 | GNU Emacs is distributed in the hope that it will be useful, | |
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 | GNU General Public License for more details. | |
16 | ||
17 | You should have received a copy of the GNU General Public License | |
eb3d11ef | 18 | along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ |
b061d5f1 RS |
19 | |
20 | ||
177c0ea7 | 21 | /* The following line tells the configuration script what sort of |
b061d5f1 RS |
22 | operating system this machine is likely to run. |
23 | USUAL-OPSYS="note" | |
24 | ||
25 | NOTE-START | |
26 | Use -opsystem=osf1 | |
27 | NOTE-END | |
28 | ||
29 | */ | |
30 | ||
2eca7f4d | 31 | #ifndef _LP64 |
3347875f DL |
32 | #define _LP64 /* This doesn't appear to be necessary |
33 | on OSF 4/5 -- fx. */ | |
2eca7f4d | 34 | #endif |
b061d5f1 | 35 | |
22e9fe24 | 36 | /* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word |
74d3f806 KH |
37 | is the most significant byte. */ |
38 | ||
39 | #undef WORDS_BIG_ENDIAN | |
40 | ||
b061d5f1 RS |
41 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a |
42 | * group of arguments and treat it as an array of the arguments. */ | |
43 | ||
44 | #define NO_ARG_ARRAY | |
45 | ||
b061d5f1 | 46 | /* Now define a symbol for the cpu type, if your compiler |
132d0475 | 47 | does not define it automatically. */ |
b061d5f1 RS |
48 | |
49 | /* __alpha defined automatically */ | |
50 | ||
51 | ||
b061d5f1 RS |
52 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend |
53 | the 24-bit bit field into an int. In other words, if bit fields | |
54 | are always unsigned. | |
55 | ||
6e5cb96f | 56 | This flag only matters if you use USE_LISP_UNION_TYPE. */ |
b061d5f1 RS |
57 | |
58 | #define EXPLICIT_SIGN_EXTEND | |
59 | ||
60 | /* Data type of load average, as read out of kmem. */ | |
61 | ||
62 | #define LOAD_AVE_TYPE long | |
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 / FSCALE) | |
67 | ||
b061d5f1 | 68 | /* GNU malloc and the relocating allocator do not work together |
352c01a5 KH |
69 | with X. [Who wrote that?] */ |
70 | ||
71 | /* May 1995: reportedly [Rainer Schoepf <schoepf@uni-mainz.de>] both the | |
72 | system and the gnu malloc system work with "alpha-dec-osf3.0" and | |
73 | "alpha-dec-osf3.2". */ | |
74 | ||
75 | /* May 1995: it seems to me [Morten Welinder <terra@diku.dk>] that both | |
76 | mallocs work with "alpha-dec-osf2.0", but I daren't break anything | |
77 | right now. Feel free to play if you want. */ | |
b061d5f1 | 78 | |
76869384 | 79 | /* #define SYSTEM_MALLOC */ |
b061d5f1 | 80 | |
821f376d RS |
81 | #ifdef __ELF__ |
82 | /* With ELF, make sure that all common symbols get allocated to in the | |
83 | data section. Otherwise, the dump of temacs may miss variables in | |
84 | the shared library that have been initialized. For example, with | |
85 | GNU libc, __malloc_initialized would normally be resolved to the | |
86 | shared library's .bss section, which is fatal. */ | |
87 | # ifdef __GNUC__ | |
88 | # define C_SWITCH_MACHINE -fno-common | |
89 | # else | |
90 | # error What gives? Fix me if DEC Unix supports ELF now. | |
91 | # endif | |
821f376d | 92 | |
bcd4fb44 | 93 | #undef UNEXEC |
1a9bd6bd | 94 | #define UNEXEC unexelf.o |
bdee2ef3 | 95 | #ifndef GNU_LINUX |
d5e406c3 | 96 | #define DATA_START 0x140000000 |
bcd4fb44 | 97 | #endif |
bdee2ef3 DN |
98 | |
99 | #if (defined (__NetBSD__) || defined (__OpenBSD__)) | |
100 | #define HAVE_TEXT_START | |
685f8511 | 101 | #endif |
bcd4fb44 | 102 | |
bdee2ef3 | 103 | #else /* not __ELF__ */ |
821f376d | 104 | |
b061d5f1 RS |
105 | /* Describe layout of the address space in an executing process. */ |
106 | ||
107 | #define TEXT_START 0x120000000 | |
108 | #define DATA_START 0x140000000 | |
109 | ||
821f376d RS |
110 | /* The program to be used for unexec. */ |
111 | ||
112 | #define UNEXEC unexalpha.o | |
113 | ||
bdee2ef3 | 114 | #endif /* __ELF__ */ |
821f376d | 115 | |
821f376d RS |
116 | /* On the Alpha it's best to avoid including TERMIO since struct |
117 | termio and struct termios are mutually incompatible. */ | |
ee803128 RS |
118 | #define NO_TERMIO |
119 | ||
bdee2ef3 | 120 | #if defined (GNU_LINUX) || defined (__NetBSD__) || defined (__OpenBSD__) |
821f376d RS |
121 | # define TEXT_END ({ extern int _etext; &_etext; }) |
122 | # ifndef __ELF__ | |
123 | # define COFF | |
821f376d | 124 | # endif /* notdef __ELF__ */ |
ee803128 | 125 | #endif |
62d9f4b0 | 126 | |
13d603a9 PE |
127 | /* Many Alpha implementations (e.g. gas 2.8) can't handle DBL_MIN: |
128 | they generate code that uses a signaling NaN instead of DBL_MIN. | |
129 | Define DBL_MIN_REPLACEMENT to be the next value larger than DBL_MIN: | |
130 | this avoids the assembler bug. */ | |
131 | #define DBL_MIN_REPLACEMENT 2.2250738585072019e-308 | |
ab5796a9 MB |
132 | |
133 | /* arch-tag: 978cb578-1e25-4a60-819b-adae0972aa78 | |
134 | (do not change this comment) */ |