|
|
1.1 root 1: /* m-amdahl_uts file
2: Copyright (C) 1987 Free Software Foundation, Inc.
3:
4: This file is part of GNU Emacs.
5:
6: GNU Emacs is distributed in the hope that it will be useful,
7: but WITHOUT ANY WARRANTY. No author or distributor
8: accepts responsibility to anyone for the consequences of using it
9: or for whether it serves any particular purpose or works at all,
10: unless he says so in writing. Refer to the GNU Emacs General Public
11: License for full details.
12:
13: Everyone is granted permission to copy, modify and redistribute
14: GNU Emacs, but only under the conditions described in the
15: GNU Emacs General Public License. A copy of this license is
16: supposed to have been given to you along with GNU Emacs so you
17: can know your rights and responsibilities. It should be in a
18: file named COPYING. Among other things, the copyright notice
19: and this notice must be preserved on all copies. */
20:
21: /*
22: This file for amdahl_uts created by modifying the m-template.h
23: by Jishnu Mukerji 3/1/87
24:
25: Use s-usg5-2-2.h with this file.
26:
27: This file works with the Amdahl uts native C compiler. The 5.2u370
28: compiler is so brain damaged that it is not even worth trying to use it.
29: */
30:
31: /* The following three symbols give information on
32: the size of various data types. */
33:
34: #define SHORTBITS 16 /* Number of bits in a short */
35:
36: #define INTBITS 32 /* Number of bits in an int */
37:
38: #define LONGBITS 32 /* Number of bits in a long */
39:
40: /* Define BIG_ENDIAN iff lowest-numbered byte in a word
41: is the most significant byte. */
42:
43: #define BIG_ENDIAN
44:
45: /* Define NO_ARG_ARRAY if you cannot take the address of the first of a
46: * group of arguments and treat it as an array of the arguments. */
47:
48: #undef NO_ARG_ARRAY
49:
50: /* Define WORD_MACHINE if addresses and such have
51: * to be corrected before they can be used as byte counts. */
52:
53: #define WORD_MACHINE /* not actually used anywhere yet! */
54:
55: /* Define how to take a char and sign-extend into an int.
56: On machines where char is signed, this is a no-op. */
57:
58: #define SIGN_EXTEND_CHAR(c) (((sign_extend_temp=(c)) & 0x80) \
59: ? (sign_extend_temp | 0xFFFFFF00) \
60: : (sign_extend_temp))
61:
62: /* Now define a symbol for the cpu type, if your compiler
63: does not define it automatically:
64: vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
65: are the ones defined so far. */
66:
67: /* uts gets defined automatically */
68: /* However for clarity define amdahl_uts */
69: #define amdahl_uts
70:
71: /* Use type int rather than a union, to represent Lisp_Object */
72: /* This is desirable for most machines. */
73:
74: #define NO_UNION_TYPE
75:
76: /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
77: the 24-bit bit field into an int. In other words, if bit fields
78: are always unsigned.
79:
80: If you use NO_UNION_TYPE, this flag does not matter. */
81:
82: #define EXPLICIT_SIGN_EXTEND
83:
84: /* Data type of load average, as read out of kmem. */
85:
86: /* #define LOAD_AVE_TYPE long*/
87:
88: /* Convert that into an integer that is 100 for a load average of 1.0 */
89:
90: /*#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0)*/
91:
92: /* Define CANNOT_DUMP on machines where unexec does not work.
93: Then the function dump-emacs will not be defined
94: and temacs will do (load "loadup") automatically unless told otherwise. */
95:
96: /* #define CANNOT_DUMP
97:
98: /* Define VIRT_ADDR_VARIES if the virtual addresses of
99: pure and impure space as loaded can vary, and even their
100: relative order cannot be relied on.
101:
102: Otherwise Emacs assumes that text space precedes data space,
103: numerically. */
104:
105: /* #define VIRT_ADDR_VARIES*/
106:
107: /* Define C_ALLOCA if this machine does not support a true alloca
108: and the one written in C should be used instead.
109: Define HAVE_ALLOCA to say that the system provides a properly
110: working alloca function and it should be used.
111: Define neither one if an assembler-language alloca
112: in the file alloca.s should be used. */
113:
114: #define C_ALLOCA
115: /*#define HAVE_ALLOCA */
116:
117: #ifdef HAVE_ALLOCA
118: #define LIB_STANDARD -lPW -lc
119: #endif
120:
121: /* Define NO_REMAP if memory segmentation makes it not work well
122: to change the boundary between the text section and data section
123: when Emacs is dumped. If you define this, the preloaded Lisp
124: code will not be sharable; but that's better than failing completely. */
125:
126: /*#define NO_REMAP*/
127:
128: #define TERMINFO
129:
130: /* The usual definition of XINT, which involves shifting, does not
131: sign-extend properly on this machine. */
132:
133: #define XINT(i) (((sign_extend_temp=(i)) & 0x00800000) \
134: ? (sign_extend_temp | 0xFF000000) \
135: : (sign_extend_temp & 0x00FFFFFF))
136:
137: #ifdef emacs /* Don't do this when making xmakefile! */
138: extern int sign_extend_temp;
139: #endif
140:
141: /* The following needed to load the proper crt0.o and to get the
142: proper declaration of data_start in the #undef NO_REMAP case */
143:
144: #ifndef NO_REMAP
145: #define START_FILES pre-crt0.o /lib/crt0.o
146: #endif
147:
148: /* Perhaps this means that the optimizer isn't safe to use. */
149:
150: #define C_OPTIMIZE_SWITCH
151:
152: /* Put text and data on non-segment boundary; makes image smaller */
153:
154: #define LD_SWITCH_MACHINE -N
155:
156: /* When writing the 'xemacs' file, make text segment ro */
157: #define EXEC_MAGIC 0410
158:
159: /* Mask for address bits within a memory segment */
160: #define SEGSIZ 0x10000 /* Should this not be defined elsewhere ? */
161: #define SEGMENT_MASK (SEGSIZ - 1)
162:
163: /* Tell alloca.c which direction stack grows. */
164: #define STACK_DIRECTION -1
165:
166: /* Compensate for error in signal.h. */
167: #if NSIG==19
168: #undef NSIG
169: #define NSIG 20
170: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.