*** empty log message ***
[emacs.git] / src / m / ibmrs6000.h
blobd882d01f7a1a39dce599825aa542fa8d71dd4d39
1 /* R2 AIX machine/system dependent defines
2 Copyright (C) 1988 Free Software Foundation, Inc.
4 This file is part of GNU Emacs.
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
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
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.
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
18 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
21 /* The following line tells the configuration script what sort of
22 operating system this machine is likely to run.
23 USUAL-OPSYS="aix3-1" */
25 /* The following three symbols give information on
26 the size of various data types. */
28 #define SHORTBITS 16 /* Number of bits in a short */
30 #define INTBITS 32 /* Number of bits in an int */
32 #define LONGBITS 32 /* Number of bits in a long */
34 /* Define BIG_ENDIAN iff lowest-numbered byte in a word
35 is the most significant byte. */
37 /* This conflicts with something in the system headers,
38 and isn't currently used, since NO_UNION_TYPE is defined. */
39 #if 0
40 #define BIG_ENDIAN
41 #endif
43 /* Define NO_ARG_ARRAY if you cannot take the address of the first of a
44 * group of arguments and treat it as an array of the arguments. */
46 #define NO_ARG_ARRAY
48 /* Now define a symbol for the cpu type, if your compiler
49 does not define it automatically. */
51 #define IBMR2AIX
53 /* Use type int rather than a union, to represent Lisp_Object */
54 /* This is desirable for most machines. */
56 #define NO_UNION_TYPE
58 /* Define CANNOT_DUMP on machines where unexec does not work.
59 Then the function dump-emacs will not be defined
60 and temacs will do (load "loadup") automatically unless told otherwise. */
61 /* #define CANNOT_DUMP */
63 #define UNEXEC unexaix.o
65 /* Define addresses, macros, change some setup for dump */
67 #define NO_REMAP
69 #define TEXT_START 0x10000000
70 #define TEXT_END 0
71 #define DATA_START 0x20000000
72 #define DATA_END 0
74 /* The data segment in this machine always starts at address 0x20000000.
75 An address of data cannot be stored correctly in a Lisp object;
76 we always lose the high bits. We must tell XPNTR to add them back. */
78 #define DATA_SEG_BITS 0x20000000
80 #ifdef CANNOT_DUMP
81 /* Define shared memory segment symbols */
83 #define PURE_SEG_BITS 0x30000000
85 /* Use shared memory. */
86 /* This is turned off because it does not always work. See etc/AIX.DUMP. */
87 /* #define HAVE_SHM */
88 #define SHMKEY 5305035 /* used for shared memory code segments */
89 #endif /* CANNOT_DUMP */
91 #define N_BADMAG(x) BADMAG(x)
92 #define N_TXTOFF(x) A_TEXTPOS(x)
93 #define N_SYMOFF(x) A_SYMPOS(x)
94 #define A_TEXT_OFFSET(HDR) sizeof(HDR)
95 /* #define ADJUST_EXEC_HEADER \
96 unexec_text_start += sizeof(hdr); \
97 unexec_data_start = ohdr.a_dbase
99 #undef ADDR_CORRECT
100 #define ADDR_CORRECT(x) ((int)(x))
102 /* Define C_ALLOCA if this machine does not support a true alloca
103 and the one written in C should be used instead.
104 Define HAVE_ALLOCA to say that the system provides a properly
105 working alloca function and it should be used.
106 Define neither one if an assembler-language alloca
107 in the file alloca.s should be used. */
109 /* Note: aix3-2.h defines HAVE_ALLOCA; aix3-1.h doesn't. */
110 #ifndef HAVE_ALLOCA
111 #define C_ALLOCA
112 #define STACK_DIRECTION -1 /* tell alloca.c which way it grows */
113 #endif
115 /* Specify the font for X to use.
116 This used to be Rom14.500; that's nice on the X server shipped with
117 the RS/6000, but it's not available on other servers. */
118 #define X_DEFAULT_FONT "fixed"
120 /* Here override various assumptions in ymakefile */
122 #define OBJECTS_MACHINE hftctl.o
123 #define C_SWITCH_MACHINE -D_BSD
125 #ifdef AIX3_2
126 /* IBM's X11R5 use -lIM and -liconv in AIX 3.2.2. */
127 #define LIBS_MACHINE -lrts -lIM -liconv
128 #else
129 #define LIBS_MACHINE -lIM
130 #endif
132 #define START_FILES
133 #define HAVE_SYSVIPC
134 #define HAVE_GETWD
135 /*** BUILD 9008 - FIONREAD problem still exists in X-Windows. ***/
136 #define BROKEN_FIONREAD
138 /* Don't try to include sioctl.h or ptem.h. */
139 #undef NEED_SIOCTL
140 #undef NEED_PTEM_H
142 #define ORDINARY_LINK
143 /* sfreed@unm.edu says add -bI:/usr/lpp/X11/bin/smt.exp for AIX 3.2.4. */
144 #ifdef HAVE_AIX_SMT_EXP
145 #define LD_SWITCH_MACHINE -Wl,-bnso,-bnodelcsect,-bI:/lib/syscalls.exp,-bI:/usr/lpp/X11/bin/smt.exp
146 #else
147 #define LD_SWITCH_MACHINE -Wl,-bnso,-bnodelcsect,-bI:/lib/syscalls.exp
148 #endif
150 /* AIX supposedly doesn't use this interface, but on thr RS/6000
151 it apparently does. */
152 #define NLIST_STRUCT