|
|
1.1 root 1: /* RTPC AIX machine/system dependent defines
2: Copyright (C) 1988 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: /* The following three symbols give information on
23: the size of various data types. */
24:
25: #define SHORTBITS 16 /* Number of bits in a short */
26:
27: #define INTBITS 32 /* Number of bits in an int */
28:
29: #define LONGBITS 32 /* Number of bits in a long */
30:
31: /* Define BIG_ENDIAN iff lowest-numbered byte in a word
32: is the most significant byte. */
33:
34: #define BIG_ENDIAN
35:
36: /* Define NO_ARG_ARRAY if you cannot take the address of the first of a
37: * group of arguments and treat it as an array of the arguments. */
38:
39: #define NO_ARG_ARRAY
40:
41: /* Define how to take a char and sign-extend into an int.
42: On machines where char is signed, this is a no-op. */
43:
44: #define SIGN_EXTEND_CHAR(c) ((((int) (c)) << 24) >> 24)
45:
46: /* Now define a symbol for the cpu type, if your compiler
47: does not define it automatically. */
48:
49: #define IBMRTAIX
50:
51: #ifndef AIX
52: #define AIX
53: #endif
54:
55: /* Use type int rather than a union, to represent Lisp_Object */
56: /* This is desirable for most machines. */
57:
58: #define NO_UNION_TYPE
59:
60: /* No load average information appears in the AIX kernel. VRM has this
61: info, and if anyone desires they should fix fns.c to get it out of VRM */
62:
63: /* Define CANNOT_DUMP on machines where unexec does not work.
64: Then the function dump-emacs will not be defined
65: and temacs will do (load "loadup") automatically unless told otherwise. */
66:
67: /* #define CANNOT_DUMP */
68:
69: /* Define addresses, macros, change some setup for dump */
70:
71: #undef COFF
72: #define NO_REMAP
73: #undef static
74: /* Since NO_REMAP, problem with statics doesn't exist */
75:
76: #define TEXT_START 0x10000000
77: #define TEXT_END 0
78: #define DATA_START 0x20000000
79: #define DATA_END 0
80:
81: /* The data segment in this machine always starts at address 0x20000000.
82: An address of data cannot be stored correctly in a Lisp object;
83: we always lose the high bits. We must tell XPNTR to add them back. */
84:
85: #define DATA_SEG_BITS 0x20000000
86:
87: #define N_BADMAG(x) BADMAG(x)
88: #define N_TXTOFF(x) A_TEXTPOS(x)
89: #define N_SYMOFF(x) A_SYMPOS(x)
90: #define A_TEXT_OFFSET(HDR) sizeof(HDR)
91: #define ADJUST_EXEC_HEADER \
92: unexec_text_start += sizeof(hdr); \
93: unexec_data_start = ohdr.a_dbase
94: #undef ADDR_CORRECT
95: #define ADDR_CORRECT(x) ((int)(x))
96:
97: /* Define C_ALLOCA if this machine does not support a true alloca
98: and the one written in C should be used instead.
99: Define HAVE_ALLOCA to say that the system provides a properly
100: working alloca function and it should be used.
101: Define neither one if an assembler-language alloca
102: in the file alloca.s should be used. */
103:
104: #define C_ALLOCA
105: #define STACK_DIRECTION -1 /* tell alloca.c which way it grows */
106:
107: /* AIX has PTYs, but they work so differently that they would need
108: lots of changes in process.c. Therefore, they are disabled. */
109:
110: /* #define HAVE_PTYS */
111:
112: /* AIX has IPC. It also has sockets, and either can be used for client/server.
113: I would suggest the client/server code be changed to use HAVE_SOCKETS rather
114: than BSD as the conditional if sockets provide any advantages. */
115:
116: #define HAVE_SYSVIPC
117:
118: /* AIX has sockets */
119:
120: #define HAVE_SOCKETS
121: /* #define SKTPAIR */ /* SKTPAIR works, but what is advantage over pipes? */
122:
123: /* Specify the font for X to use. */
124:
125: #define X_DEFAULT_FONT "Rom14.500"
126:
127: /* Here override various assumptions in ymakefile */
128:
129: /* On AIX 2.2.1, use these definitions instead
130: #define C_SWITCH_MACHINE -I/usr/include -Nn2000
131: #define LIBS_MACHINE -lrts
132: #define LIBX10_MACHINE -lrts
133: #define LIBX11_MACHINE -lrts
134: */
135:
136: #define C_SWITCH_MACHINE -I/usr/include -I/usr/include/bsd -Nn2000
137: /* need to duplicate -lsock -lbsd -lrts so refs in libX can be resolved */
138: /* order of lib specs in ymakefile should probably be changed. */
139: #define LIBS_MACHINE -lsock -lbsd -lrts
140: #define LIBX10_MACHINE -lsock -lbsd -lrts
141: #define LIBX11_MACHINE -lsock -lbsd -lrts
142:
143: #define OBJECTS_MACHINE hftctl.o
144: #define START_FILES /lib/crt0.o
145: #define LD_SWITCH_MACHINE -n -T0x10000000 -K -e start
146:
147: #if 0 /* I refuse to promulgate a recommendation that would make
148: users unable to debug - RMS. */
149: /* delete the following line to foil optimization, enable debugging */
150: #define C_DEBUG_SWITCH -O
151: #endif
152:
153:
154: /* Setup to do some things BSD way - these won't work previous to AIX 2.1.2 */
155:
156: #define bzero(t,s) (memset((t),(0),(s)))
157: #define bcmp(f,t,s) (memcmp((t),(f),(s)))
158: #define vfork fork
159: #define killpg( pgrp, sig ) (kill( -(pgrp), (sig) ))
160:
161: #define BSTRING
162: #define HAVE_DUP2
163: #define HAVE_GETTIMEOFDAY
164: #define HAVE_SELECT
165: #define HAVE_TIMEVAL
166: #define HAVE_VFORK
167:
168: /* But don't use utimes() -- it causes SIGSEGV! Use utime() instead. */
169: #define USE_UTIME
170:
171: /* getwd is in same object module as getcwd in AIX 2.2, but doesn't exist */
172: /* at all in 2.1.2. So, for compatibility, avoid name collision on 2.2 */
173: #define getwd AIX_getwd
174:
175: /* AIX defines FIONREAD, but it does not work. */
176: #define BROKEN_FIONREAD
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.