Commit | Line | Data |
---|---|---|
30fe07a6 | 1 | /* R2 AIX machine/system dependent defines |
d8f6d720 | 2 | Copyright (C) 1988, 2002 Free Software Foundation, Inc. |
30fe07a6 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) |
30fe07a6 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. */ | |
30fe07a6 JB |
20 | |
21 | ||
177c0ea7 | 22 | /* The following line tells the configuration script what sort of |
30fe07a6 JB |
23 | operating system this machine is likely to run. |
24 | USUAL-OPSYS="aix3-1" */ | |
25 | ||
74d3f806 KH |
26 | /* Define WORDS_BIG_ENDIAN iff lowest-numbered byte in a word |
27 | is the most significant byte. */ | |
28 | ||
d7d7c1dd RS |
29 | #ifdef USG5_4 |
30 | #undef WORDS_BIG_ENDIAN | |
31 | #else | |
74d3f806 | 32 | #define WORDS_BIG_ENDIAN |
d7d7c1dd | 33 | #endif |
74d3f806 | 34 | |
30fe07a6 JB |
35 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a |
36 | * group of arguments and treat it as an array of the arguments. */ | |
37 | ||
38 | #define NO_ARG_ARRAY | |
39 | ||
30fe07a6 JB |
40 | /* Now define a symbol for the cpu type, if your compiler |
41 | does not define it automatically. */ | |
42 | ||
43 | #define IBMR2AIX | |
44 | ||
45 | /* Use type int rather than a union, to represent Lisp_Object */ | |
46 | /* This is desirable for most machines. */ | |
47 | ||
48 | #define NO_UNION_TYPE | |
49 | ||
50 | /* Define CANNOT_DUMP on machines where unexec does not work. | |
51 | Then the function dump-emacs will not be defined | |
52 | and temacs will do (load "loadup") automatically unless told otherwise. */ | |
d7d7c1dd RS |
53 | #ifdef USG5_4 |
54 | #define CANNOT_DUMP | |
55 | #endif | |
30fe07a6 | 56 | |
d7d7c1dd | 57 | #ifndef UNEXEC |
30fe07a6 | 58 | #define UNEXEC unexaix.o |
d7d7c1dd | 59 | #endif |
30fe07a6 JB |
60 | |
61 | /* Define addresses, macros, change some setup for dump */ | |
62 | ||
63 | #define NO_REMAP | |
64 | ||
d7d7c1dd | 65 | #ifndef USG5_4 |
30fe07a6 JB |
66 | #define TEXT_START 0x10000000 |
67 | #define TEXT_END 0 | |
68 | #define DATA_START 0x20000000 | |
69 | #define DATA_END 0 | |
d7d7c1dd | 70 | #endif |
30fe07a6 JB |
71 | |
72 | /* The data segment in this machine always starts at address 0x20000000. | |
73 | An address of data cannot be stored correctly in a Lisp object; | |
74 | we always lose the high bits. We must tell XPNTR to add them back. */ | |
75 | ||
d7d7c1dd | 76 | #ifndef USG5_4 |
30fe07a6 | 77 | #define DATA_SEG_BITS 0x20000000 |
d7d7c1dd RS |
78 | #else |
79 | #define DATA_SEG_BITS 0 | |
80 | #endif | |
30fe07a6 JB |
81 | |
82 | #ifdef CANNOT_DUMP | |
83 | /* Define shared memory segment symbols */ | |
84 | ||
85 | #define PURE_SEG_BITS 0x30000000 | |
86 | ||
87 | /* Use shared memory. */ | |
88 | /* This is turned off because it does not always work. See etc/AIX.DUMP. */ | |
89 | /* #define HAVE_SHM */ | |
90 | #define SHMKEY 5305035 /* used for shared memory code segments */ | |
91 | #endif /* CANNOT_DUMP */ | |
92 | ||
93 | #define N_BADMAG(x) BADMAG(x) | |
94 | #define N_TXTOFF(x) A_TEXTPOS(x) | |
95 | #define N_SYMOFF(x) A_SYMPOS(x) | |
96 | #define A_TEXT_OFFSET(HDR) sizeof(HDR) | |
97 | /* #define ADJUST_EXEC_HEADER \ | |
98 | unexec_text_start += sizeof(hdr); \ | |
99 | unexec_data_start = ohdr.a_dbase | |
100 | */ | |
101 | #undef ADDR_CORRECT | |
102 | #define ADDR_CORRECT(x) ((int)(x)) | |
103 | ||
067cd4a4 JB |
104 | /* Specify the font for X to use. |
105 | This used to be Rom14.500; that's nice on the X server shipped with | |
106 | the RS/6000, but it's not available on other servers. */ | |
107 | #define X_DEFAULT_FONT "fixed" | |
30fe07a6 JB |
108 | |
109 | /* Here override various assumptions in ymakefile */ | |
110 | ||
73939f84 | 111 | #ifdef AIXHFT |
30fe07a6 | 112 | #define OBJECTS_MACHINE hftctl.o |
73939f84 RS |
113 | #endif |
114 | ||
d7d7c1dd | 115 | #ifndef USG5_4 |
30fe07a6 | 116 | #define C_SWITCH_MACHINE -D_BSD |
d7d7c1dd | 117 | #endif |
f6c25ced RS |
118 | |
119 | #ifdef AIX3_2 | |
b1f7fb34 | 120 | /* -lpthreads seems to be necessary for Xlib in X11R6, and should be harmless |
41a69b9e | 121 | on older versions of X where it happens to exist. */ |
b1f7fb34 KH |
122 | #ifdef HAVE_LIBPTHREADS |
123 | #define LIBS_MACHINE -lrts -lIM -liconv -lpthreads | |
549fba2b | 124 | #else |
e3de4c57 | 125 | /* IBM's X11R5 use -lIM and -liconv in AIX 3.2.2. */ |
8250185b | 126 | #define LIBS_MACHINE -lrts -lIM -liconv |
549fba2b | 127 | #endif |
f6c25ced | 128 | #else |
d7d7c1dd RS |
129 | #ifdef USG5_4 |
130 | #define LIBS_MACHINE | |
131 | #else | |
f6c25ced RS |
132 | #define LIBS_MACHINE -lIM |
133 | #endif | |
d7d7c1dd | 134 | #endif |
f6c25ced | 135 | |
30fe07a6 | 136 | #define START_FILES |
30fe07a6 | 137 | #define HAVE_SYSVIPC |
30fe07a6 JB |
138 | /*** BUILD 9008 - FIONREAD problem still exists in X-Windows. ***/ |
139 | #define BROKEN_FIONREAD | |
0a95681a KH |
140 | /* As we define BROKEN_FIONREAD, SIGIO will be undefined in systty.h. |
141 | But, on AIX, SIGAIO, SIGPTY, and SIGPOLL are defined as SIGIO, | |
142 | which causes compilation error at init_signals in sysdep.c. So, we | |
143 | define these macros so that syssignal.h detects them and undefine | |
144 | SIGAIO, SIGPTY and SIGPOLL. */ | |
145 | #define BROKEN_SIGAIO | |
146 | #define BROKEN_SIGPTY | |
147 | #define BROKEN_SIGPOLL | |
30fe07a6 JB |
148 | |
149 | /* Don't try to include sioctl.h or ptem.h. */ | |
150 | #undef NEED_SIOCTL | |
151 | #undef NEED_PTEM_H | |
152 | ||
a80652a7 | 153 | #define ORDINARY_LINK |
d7d7c1dd RS |
154 | |
155 | #ifndef USG5_4 | |
8258ca53 | 156 | /* sfreed@unm.edu says add -bI:/usr/lpp/X11/bin/smt.exp for AIX 3.2.4. */ |
c276c719 | 157 | /* marc@sti.com (Marc Pawliger) says ibmrs6000.inp is needed to avoid |
3e6caf2a | 158 | linker error for updated X11R5 libraries, which references pthread library |
c276c719 RS |
159 | which most machines don't have. We use the name .inp instead of .imp |
160 | because .inp is a better convention to use in make-dist for naming | |
161 | random input files. */ | |
3c3a57e3 | 162 | #ifdef THIS_IS_MAKEFILE /* Don't use this in configure. */ |
bcc31647 RS |
163 | #ifdef AIX4 |
164 | #define LD_SWITCH_MACHINE -Wl,-bnodelcsect | |
165 | #else /* not AIX4 */ | |
b84b186a | 166 | #ifdef HAVE_AIX_SMT_EXP |
623a55a3 | 167 | #define LD_SWITCH_MACHINE -Wl,-bnso,-bnodelcsect,-bI:/lib/syscalls.exp,-bI:$(srcdir)/m/ibmrs6000.inp,-bI:/usr/lpp/X11/bin/smt.exp |
b84b186a | 168 | #else |
623a55a3 | 169 | #define LD_SWITCH_MACHINE -Wl,-bnso,-bnodelcsect,-bI:/lib/syscalls.exp,-bI:$(srcdir)/m/ibmrs6000.inp |
b84b186a | 170 | #endif |
bcc31647 | 171 | #endif /* not AIX4 */ |
3c3a57e3 | 172 | #endif /* THIS_IS_MAKEFILE */ |
24a31d57 RS |
173 | |
174 | /* Avoid gcc 2.7.x collect2 bug by using /bin/ld instead. */ | |
175 | #if __GNUC__ == 2 && __GNUC_MINOR__ == 7 | |
176 | #define LD_SWITCH_SITE -B/bin/ | |
177 | #endif | |
36e2cc1f | 178 | |
0a95681a | 179 | #ifndef NLIST_STRUCT |
623a55a3 | 180 | /* AIX supposedly doesn't use this interface, but on the RS/6000 |
36e2cc1f RS |
181 | it apparently does. */ |
182 | #define NLIST_STRUCT | |
0a95681a | 183 | #endif |
d7d7c1dd | 184 | #endif /* USG5_4 */ |