Commit | Line | Data |
---|---|---|
6ce11b6b | 1 | /* machine description file for Convex (all models). |
b908093d | 2 | Copyright (C) 1987, 1994, 2002, 2003, 2004, |
aaef169d | 3 | 2005, 2006 Free Software Foundation, Inc. |
20c428fd JB |
4 | |
5 | This file is part of GNU Emacs. | |
6 | ||
7 | GNU Emacs is free software; you can redistribute it and/or modify | |
8 | it under the terms of the GNU General Public License as published by | |
17385adc | 9 | the Free Software Foundation; either version 2, or (at your option) |
20c428fd JB |
10 | any later version. |
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 | |
18 | along with GNU Emacs; see the file COPYING. If not, write to | |
364c38d3 LK |
19 | the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
20 | Boston, MA 02110-1301, USA. */ | |
20c428fd JB |
21 | |
22 | ||
177c0ea7 | 23 | /* The following line tells the configuration script what sort of |
20c428fd JB |
24 | operating system this machine is likely to run. |
25 | USUAL-OPSYS="bsd4-3" */ | |
26 | ||
74d3f806 KH |
27 | /* Define WORDS_BIG_ENDIAN iff lowest-numbered byte in a word |
28 | is the most significant byte. */ | |
29 | ||
30 | #define WORDS_BIG_ENDIAN | |
31 | ||
20c428fd JB |
32 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a |
33 | * group of arguments and treat it as an array of the arguments. | |
34 | * Maybe it would be better to simply correct the code. */ | |
35 | ||
36 | #define NO_ARG_ARRAY | |
37 | ||
38 | /* Define WORD_MACHINE if addresses and such have | |
39 | * to be corrected before they can be used as byte counts. */ | |
40 | ||
41 | /* #define WORD_MACHINE */ | |
177c0ea7 | 42 | |
20c428fd JB |
43 | /* Now define a symbol for the cpu type, if your compiler |
44 | does not define it automatically. */ | |
6ce11b6b RS |
45 | #ifndef convex /* The compiler doesn't always do this. */ |
46 | #define convex | |
47 | #endif | |
20c428fd JB |
48 | |
49 | /* Use type int rather than a union, to represent Lisp_Object */ | |
50 | /* This is desirable for most machines. */ | |
51 | ||
52 | #define NO_UNION_TYPE | |
53 | ||
6ce11b6b RS |
54 | #ifndef __GNUC__ /* David M. Cooke <dcooke@haven.larc.nasa.gov> |
55 | and Ralph Sobek <Ralph.Sobek@cerfacs.fr> agree | |
56 | must ignore one arg when compiled with convex compiler. */ | |
6385c560 | 57 | #define CRT0_DUMMIES ignore, |
177c0ea7 | 58 | #else |
6ce11b6b RS |
59 | #define CRT0_DUMMIES |
60 | #endif | |
20c428fd JB |
61 | |
62 | /* crt0.c should define a symbol `start' and do .globl with a dot. */ | |
63 | ||
64 | #define DOT_GLOBAL_START | |
65 | ||
66 | /* Data type of load average, as read out of kmem. */ | |
67 | ||
68 | #define LOAD_AVE_TYPE double | |
69 | ||
70 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | |
71 | ||
72 | #define LOAD_AVE_CVT(x) (int) ((x) * 100.0) | |
73 | ||
74 | /* Define CANNOT_DUMP on machines where unexec does not work. | |
75 | Then the function dump-emacs will not be defined | |
76 | and temacs will do (load "loadup") automatically unless told otherwise. */ | |
77 | ||
78 | /* #define CANNOT_DUMP */ | |
79 | ||
80 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | |
81 | pure and impure space as loaded can vary, and even their | |
82 | relative order cannot be relied on. | |
83 | ||
84 | Otherwise Emacs assumes that text space precedes data space, | |
85 | numerically. */ | |
86 | ||
87 | /*#define VIRT_ADDR_VARIES*/ | |
88 | ||
6385c560 | 89 | /* Must use the system's termcap. It does special things. */ |
177c0ea7 | 90 | |
6385c560 | 91 | #define LIBS_TERMCAP -ltermcap |
177c0ea7 | 92 | |
20c428fd JB |
93 | /* Define NO_REMAP if memory segmentation makes it not work well |
94 | to change the boundary between the text section and data section | |
95 | when Emacs is dumped. If you define this, the preloaded Lisp | |
96 | code will not be sharable; but that's better than failing completely. */ | |
97 | ||
98 | /* #define NO_REMAP */ | |
99 | \f | |
100 | /* Addresses on the Convex have the high bit set. */ | |
5964b664 | 101 | #define DATA_SEG_BITS (1 << (BITS_PER_INT-1)) |
20c428fd JB |
102 | |
103 | /* Right shift is logical shift. | |
104 | And the usual way of handling such machines, which involves | |
105 | copying the number into sign_extend_temp, does not work | |
106 | for reasons as yet unknown. */ | |
107 | ||
108 | #define XINT(a) sign_extend_lisp_int (a) | |
109 | ||
110 | /* Convex uses a special version of unexec. */ | |
111 | ||
112 | #define UNEXEC unexconvex.o | |
113 | ||
114 | /* you gotta define 'COFF' for post 6.1 unexec. */ | |
115 | ||
116 | #define COFF | |
117 | #define TEXT_START 0x80001000 | |
118 | ||
119 | /* Posix stuff for Convex OS 8.1 and up. */ | |
120 | ||
20c428fd JB |
121 | #define LD_SWITCH_MACHINE \ |
122 | -e__start -L /usr/lib \ | |
123 | '-A__iob=___ap$$iob' '-A_use_libc_sema=___ap$$use_libc_sema' | |
124 | ||
20c428fd JB |
125 | /* Use <dirent.h>. */ |
126 | #define SYSV_SYSTEM_DIR | |
20c428fd JB |
127 | |
128 | #ifdef _POSIX_SOURCE | |
129 | ||
130 | /* These symbols have been undefined to advance the state of the art. */ | |
131 | ||
132 | #define S_IFMT _S_IFMT | |
133 | #define S_IFDIR _S_IFDIR | |
134 | ||
135 | #define S_IREAD _S_IREAD | |
136 | #define S_IWRITE _S_IWRITE | |
137 | #define S_IEXEC _S_IEXEC | |
138 | ||
139 | #endif | |
140 | ||
141 | /* Ptys may start below ptyp0; call a routine to hunt for where. */ | |
142 | ||
143 | #undef FIRST_PTY_LETTER | |
144 | #define FIRST_PTY_LETTER first_pty_letter() | |
145 | ||
146 | #if 0 | |
147 | /* | |
148 | * Force a K&R compilation and libraries with the Convex V 4.0 C compiler | |
149 | */ | |
150 | #define C_SWITCH_MACHINE -pcc | |
151 | #define LIB_STANDARD -lc_old | |
152 | #define LIBS_MACHINE -lC2_old | |
153 | #define LD_SWITCH_MACHINE -X -NL -fn -Enoposix -A__iob=___ap\$$iob \ | |
154 | -A_use_libc_sema=___ap\$$use_libc_sema -L /usr/lib | |
155 | #endif | |
6ce11b6b RS |
156 | |
157 | /* Avoid error in xrdb.c - d.m.cooke@larc.nasa.gov. */ | |
158 | #define DECLARE_GETPWUID_WITH_UID_T | |
159 | ||
160 | /* Call getpgrp properly. */ | |
161 | #define GETPGRP_NO_ARG | |
162 | ||
163 | /* Tested for both Convex C and GNUC by d.m.cooke@larc.nasa.gov. */ | |
164 | #define LIBS_MACHINE -lC2 | |
165 | ||
166 | /* Avoid error in getloadavg.c. */ | |
167 | #define NLIST_NAME_UNION 1 | |
cbb35d7d RS |
168 | |
169 | #if 0 /* This is supposed to be an improvement. | |
170 | It would be good for people to try enabling this code | |
171 | and report the results. */ | |
172 | /* gcc -nostdlib prevents some math symbols from being included. | |
173 | So we have to use -nostartfiles instead. */ | |
174 | #define LINKER $(CC) -nostartfiles | |
175 | ||
176 | #define ORDINARY_LINK | |
177 | ||
178 | #undef LD_SWITCH_MACHINE | |
179 | #define LD_SWITCH_MACHINE \ | |
180 | -L /usr/lib \ | |
181 | '-A__iob=___ap$$iob' '-A_use_libc_sema=___ap$$use_libc_sema' | |
182 | #endif | |
fc3b70c8 | 183 | |
aa147f3b RS |
184 | /* There is some indication that the convex has sys/wait.h |
185 | but it does not work right. */ | |
fc3b70c8 | 186 | #undef HAVE_SYS_WAIT_H |
ab5796a9 MB |
187 | |
188 | /* arch-tag: 127e5ae1-4f03-40c0-a87e-d2cb02c59de8 | |
189 | (do not change this comment) */ |