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