root/trunk/src/m/convex.h

Revision 4220, 5.7 kB (checked in by miyoshi, 8 months ago)

Sync up with Emacs22.2.

  • Property svn:eol-style set to native
Line 
1 /* machine description file for Convex (all models).
2    Copyright (C) 1987, 1994, 2001, 2002, 2003, 2004,
3                  2005, 2006, 2007, 2008  Free Software Foundation, Inc.
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
9 the Free Software Foundation; either version 3, or (at your option)
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
19 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20 Boston, MA 02110-1301, USA.  */
21
22
23 /* The following line tells the configuration script what sort of
24    operating system this machine is likely to run.
25    USUAL-OPSYS="bsd4-3"  */
26
27 /* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
28    is the most significant byte.  */
29
30 #define WORDS_BIG_ENDIAN
31
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 */
42
43 /* Now define a symbol for the cpu type, if your compiler
44    does not define it automatically.  */
45 #ifndef convex  /* The compiler doesn't always do this.  */
46 #define convex
47 #endif
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
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.  */
57 #define CRT0_DUMMIES ignore,
58 #else
59 #define CRT0_DUMMIES
60 #endif
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
89 /* Define C_ALLOCA if this machine does not support a true alloca
90    and the one written in C should be used instead.
91    Define HAVE_ALLOCA to say that the system provides a properly
92    working alloca function and it should be used.
93    Define neither one if an assembler-language alloca
94    in the file alloca.s should be used.  */
95
96 /* #define C_ALLOCA */
97 #define HAVE_ALLOCA
98
99 /* Must use the system's termcap.  It does special things.  */
100
101 #define LIBS_TERMCAP -ltermcap
102
103 /* Define NO_REMAP if memory segmentation makes it not work well
104    to change the boundary between the text section and data section
105    when Emacs is dumped.  If you define this, the preloaded Lisp
106    code will not be sharable; but that's better than failing completely.  */
107
108 /* #define NO_REMAP */
109
110 /* Addresses on the Convex have the high bit set.  */
111 #define DATA_SEG_BITS (1 << (BITS_PER_INT-1))
112
113 /* Right shift is logical shift.
114    And the usual way of handling such machines, which involves
115    copying the number into sign_extend_temp, does not work
116    for reasons as yet unknown.  */
117
118 #define XINT(a)  sign_extend_lisp_int (a)
119
120 /* Convex uses a special version of unexec.  */
121
122 #define UNEXEC unexconvex.o
123
124 /* you gotta define 'COFF' for post 6.1 unexec. */
125
126 #define COFF
127 #define TEXT_START 0x80001000
128
129 /* Posix stuff for Convex OS 8.1 and up. */
130
131 #define LD_SWITCH_MACHINE \
132     -e__start -L /usr/lib \
133     '-A__iob=___ap$$iob' '-A_use_libc_sema=___ap$$use_libc_sema'
134
135 /* Use <dirent.h>. */
136 #define SYSV_SYSTEM_DIR
137
138 #ifdef _POSIX_SOURCE
139
140 /* These symbols have been undefined to advance the state of the art. */
141
142 #define S_IFMT _S_IFMT
143 #define S_IFDIR _S_IFDIR
144
145 #define S_IREAD _S_IREAD
146 #define S_IWRITE _S_IWRITE
147 #define S_IEXEC _S_IEXEC
148
149 #endif
150
151 /* Ptys may start below ptyp0; call a routine to hunt for where. */
152
153 #undef FIRST_PTY_LETTER
154 #define FIRST_PTY_LETTER first_pty_letter()
155
156 #if 0
157 /*
158  * Force a K&R compilation and libraries with the Convex V 4.0 C compiler
159  */
160 #define C_SWITCH_MACHINE -pcc
161 #define LIB_STANDARD -lc_old
162 #define LIBS_MACHINE -lC2_old
163 #define LD_SWITCH_MACHINE -X -NL -fn -Enoposix -A__iob=___ap\$$iob \
164  -A_use_libc_sema=___ap\$$use_libc_sema -L /usr/lib
165 #endif
166
167 /* Avoid error in xrdb.c - d.m.cooke@larc.nasa.gov.  */
168 #define DECLARE_GETPWUID_WITH_UID_T
169
170 /* Call getpgrp properly.  */
171 #define GETPGRP_NO_ARG
172
173 /* Tested for both Convex C and GNUC by d.m.cooke@larc.nasa.gov.  */
174 #define LIBS_MACHINE -lC2
175
176 /* Avoid error in getloadavg.c.  */
177 #define NLIST_NAME_UNION  1
178
179 #if 0  /* This is supposed to be an improvement.
180           It would be good for people to try enabling this code
181           and report the results.  */
182 /* gcc -nostdlib prevents some math symbols from being included.
183    So we have to use -nostartfiles instead. */
184 #define LINKER $(CC) -nostartfiles
185
186 #define ORDINARY_LINK
187
188 #undef LD_SWITCH_MACHINE
189 #define LD_SWITCH_MACHINE \
190     -L /usr/lib \
191     '-A__iob=___ap$$iob' '-A_use_libc_sema=___ap$$use_libc_sema'
192 #endif
Note: See TracBrowser for help on using the browser.