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