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