(vendor-key-syms): Set this variable.
[bpt/emacs.git] / src / m / ibmrs6000.h
CommitLineData
30fe07a6
JB
1/* R2 AIX machine/system dependent defines
2 Copyright (C) 1988 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
17385adc 8the Free Software Foundation; either version 2, or (at your option)
30fe07a6
JB
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
19
20
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" */
24
25/* The following three symbols give information on
26 the size of various data types. */
27
28#define SHORTBITS 16 /* Number of bits in a short */
29
30#define INTBITS 32 /* Number of bits in an int */
31
32#define LONGBITS 32 /* Number of bits in a long */
33
34/* Define BIG_ENDIAN iff lowest-numbered byte in a word
35 is the most significant byte. */
36
c45a32d4
RS
37/* This conflicts with something in the system headers,
38 and isn't currently used, since NO_UNION_TYPE is defined. */
39#if 0
30fe07a6 40#define BIG_ENDIAN
dc35af79 41#endif
30fe07a6
JB
42
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. */
45
46#define NO_ARG_ARRAY
47
30fe07a6
JB
48/* Now define a symbol for the cpu type, if your compiler
49 does not define it automatically. */
50
51#define IBMR2AIX
52
53/* Use type int rather than a union, to represent Lisp_Object */
54/* This is desirable for most machines. */
55
56#define NO_UNION_TYPE
57
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 */
62
63#define UNEXEC unexaix.o
64
65/* Define addresses, macros, change some setup for dump */
66
67#define NO_REMAP
68
69#define TEXT_START 0x10000000
70#define TEXT_END 0
71#define DATA_START 0x20000000
72#define DATA_END 0
73
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. */
77
78#define DATA_SEG_BITS 0x20000000
79
80#ifdef CANNOT_DUMP
81/* Define shared memory segment symbols */
82
83#define PURE_SEG_BITS 0x30000000
84
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 */
90
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
98*/
99#undef ADDR_CORRECT
100#define ADDR_CORRECT(x) ((int)(x))
101
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. */
108
067cd4a4
JB
109/* Note: aix3-2.h defines HAVE_ALLOCA; aix3-1.h doesn't. */
110#ifndef HAVE_ALLOCA
30fe07a6
JB
111#define C_ALLOCA
112#define STACK_DIRECTION -1 /* tell alloca.c which way it grows */
067cd4a4 113#endif
30fe07a6 114
067cd4a4
JB
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"
30fe07a6
JB
119
120/* Here override various assumptions in ymakefile */
121
122#define OBJECTS_MACHINE hftctl.o
123#define C_SWITCH_MACHINE -D_BSD
f6c25ced
RS
124
125#ifdef AIX3_2
e3de4c57 126/* IBM's X11R5 use -lIM and -liconv in AIX 3.2.2. */
8250185b 127#define LIBS_MACHINE -lrts -lIM -liconv
f6c25ced
RS
128#else
129#define LIBS_MACHINE -lIM
130#endif
131
30fe07a6 132#define START_FILES
30fe07a6
JB
133#define HAVE_SYSVIPC
134#define HAVE_SETSID
135#define HAVE_GETWD
136/*** BUILD 9008 - FIONREAD problem still exists in X-Windows. ***/
137#define BROKEN_FIONREAD
138
139/* Don't try to include sioctl.h or ptem.h. */
140#undef NEED_SIOCTL
141#undef NEED_PTEM_H
142
a80652a7 143#define ORDINARY_LINK
8258ca53 144/* sfreed@unm.edu says add -bI:/usr/lpp/X11/bin/smt.exp for AIX 3.2.4. */
b84b186a 145#ifdef HAVE_AIX_SMT_EXP
301b4551 146#define LD_SWITCH_MACHINE -Wl,-bnso,-bnodelcsect,-bI:/lib/syscalls.exp,-bI:/usr/lpp/X11/bin/smt.exp
b84b186a
JB
147#else
148#define LD_SWITCH_MACHINE -Wl,-bnso,-bnodelcsect,-bI:/lib/syscalls.exp
149#endif
36e2cc1f
RS
150
151/* AIX supposedly doesn't use this interface, but on thr RS/6000
152 it apparently does. */
153#define NLIST_STRUCT