|
|
1.1 ! root 1: /* m- file for ibm ps/2 aix386. ! 2: Copyright (C) 1989 Free Software Foundation, Inc. ! 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 ! 8: the Free Software Foundation; either version 1, or (at your option) ! 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 ! 18: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ ! 19: ! 20: ! 21: /* The following three symbols give information on ! 22: the size of various data types. */ ! 23: ! 24: #define SHORTBITS 16 /* Number of bits in a short */ ! 25: ! 26: #define INTBITS 32 /* Number of bits in an int */ ! 27: ! 28: #define LONGBITS 32 /* Number of bits in a long */ ! 29: ! 30: /* i386 is not big-endian: lowest numbered byte is least significant. */ ! 31: ! 32: /* #undef BIG_ENDIAN */ ! 33: ! 34: /* Define NO_ARG_ARRAY if you cannot take the address of the first of a ! 35: * group of arguments and treat it as an array of the arguments. */ ! 36: ! 37: /* #define NO_ARG_ARRAY */ ! 38: ! 39: /* Define WORD_MACHINE if addresses and such have ! 40: * to be corrected before they can be used as byte counts. */ ! 41: ! 42: /* #define WORD_MACHINE */ ! 43: ! 44: /* Define how to take a char and sign-extend into an int. ! 45: On machines where char is signed, this is a no-op. */ ! 46: ! 47: #define SIGN_EXTEND_CHAR(c) ((signed char)(c)) ! 48: ! 49: /* Now define a symbol for the cpu type, if your compiler ! 50: does not define it automatically: ! 51: Ones defined so far include vax, m68000, ns16000, pyramid, ! 52: orion, tahoe, APOLLO and many others */ ! 53: ! 54: #define INTEL386 ! 55: #define aix386 ! 56: #undef SYSTEM_TYPE ! 57: #define SYSTEM_TYPE "ibm-aix-386" ! 58: ! 59: /* Use type int rather than a union, to represent Lisp_Object */ ! 60: ! 61: #define NO_UNION_TYPE ! 62: ! 63: /* crt0.c, if it is used, should use the i386-bsd style of entry. ! 64: with no extra dummy args. On USG and XENIX, ! 65: NO_REMAP says this isn't used. */ ! 66: ! 67: #define CRT0_DUMMIES bogus_fp, ! 68: ! 69: /* crt0.c should define a symbol `start' and do .globl with a dot. */ ! 70: ! 71: #define DOT_GLOBAL_START ! 72: ! 73: /* USG systems do not actually support the load average, ! 74: so disable it for them. */ ! 75: ! 76: /* Define CANNOT_DUMP on machines where unexec does not work. ! 77: Then the function dump-emacs will not be defined ! 78: and temacs will do (load "loadup") automatically unless told otherwise. */ ! 79: ! 80: /* #define CANNOT_DUMP */ ! 81: ! 82: /* Define VIRT_ADDR_VARIES if the virtual addresses of ! 83: pure and impure space as loaded can vary, and even their ! 84: relative order cannot be relied on. ! 85: ! 86: Otherwise Emacs assumes that text space precedes data space, ! 87: numerically. */ ! 88: ! 89: /* #define VIRT_ADDR_VARIES */ ! 90: ! 91: /* Define addresses, macros, change some setup for dump */ ! 92: ! 93: #define NO_REMAP ! 94: #undef static ! 95: /* Since NO_REMAP, problem with statics doesn't exist */ ! 96: ! 97: #ifdef USG5_3 ! 98: #define TEXT_START 0x00000000 ! 99: #else ! 100: #define TEXT_START 0x00400000 ! 101: #define TEXT_END 0 ! 102: #define DATA_START 0x00800000 ! 103: #define DATA_END 0 ! 104: ! 105: /* The data segment in this machine always starts at address 0x00800000. ! 106: An address of data cannot be stored correctly in a Lisp object; ! 107: we always lose the high bits. We must tell XPNTR to add them back. */ ! 108: ! 109: #define DATA_SEG_BITS 0x00800000 ! 110: #endif ! 111: ! 112: #if 0 /* I refuse to promulgate a recommendation that would make ! 113: users unable to debug - RMS. */ ! 114: /* delete the following line to foil optimization, enable debugging */ ! 115: #define C_DEBUG_SWITCH -O ! 116: #endif ! 117: ! 118: #define BSTRING ! 119: #define HAVE_DUP2 ! 120: #define HAVE_GETTIMEOFDAY ! 121: #define HAVE_SELECT ! 122: #define HAVE_TIMEVAL ! 123: #define HAVE_VFORK ! 124: #define HAVE_SETSID ! 125: #define HAVE_TCATTR ! 126: ! 127: /* ! 128: * Define SYSV_SYSTEM_DIR to use the V.3 getdents/readir ! 129: * library functions. Almost, but not quite the same as ! 130: * the 4.2 functions ! 131: */ ! 132: #define SYSV_SYSTEM_DIR ! 133: #define HAVE_CLOSEDIR /* This system, unlike ordinary SYSV, has closedir. */ ! 134: ! 135: /* ! 136: * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate ! 137: * The 4.2 opendir, etc., library functions. ! 138: */ ! 139: #undef NONSYSTEM_DIR_LIBRARY ! 140: ! 141: /* But don't use utimes() -- it causes SIGSEGV! Use utime() instead. */ ! 142: #define USE_UTIME ! 143: ! 144: /* AIX defines FIONREAD, but it does not work. */ ! 145: #define BROKEN_FIONREAD ! 146: ! 147: /* This page was added in June 1990. It may be incorrect for some versions ! 148: of aix, so delete it if it causes trouble. */ ! 149: ! 150: /* AIX has sigsetmask() */ ! 151: #undef sigsetmask ! 152: ! 153: /* AIX386 has BSD4.3 PTYs */ ! 154: ! 155: #define HAVE_PTYS ! 156: ! 157: /* AIX has IPC. It also has sockets, and either can be used for client/server. ! 158: I would suggest the client/server code be changed to use HAVE_SOCKETS rather ! 159: than BSD as the conditional if sockets provide any advantages. */ ! 160: ! 161: #define HAVE_SYSVIPC ! 162: ! 163: /* AIX has sockets */ ! 164: ! 165: #define HAVE_SOCKETS ! 166: /* #define SKTPAIR */ /* SKTPAIR works, but what is advantage over pipes? */ ! 167: ! 168: /* Specify the font for X to use. */ ! 169: ! 170: #define X_DEFAULT_FONT "8x13" ! 171: ! 172: /* AIX has a wait.h. */ ! 173: ! 174: #define HAVE_WAIT_HEADER ! 175: ! 176: /* Data type of load average, as read out of kmem. */ ! 177: ! 178: #define LOAD_AVE_TYPE long /* For AIX (sysV) */ ! 179: ! 180: /* Convert that into an integer that is 100 for a load average of 1.0 */ ! 181: ! 182: #define LOAD_AVE_CVT(x) (int) (((double) (x)/65535.0) * 100.0) ! 183: ! 184: /* Here override various assumptions in ymakefile */ ! 185: ! 186: /* Define C_ALLOCA if this machine does not support a true alloca ! 187: and the one written in C should be used instead. ! 188: Define HAVE_ALLOCA to say that the system provides a properly ! 189: working alloca function and it should be used. ! 190: Define neither one if an assembler-language alloca ! 191: in the file alloca.s should be used. */ ! 192: ! 193: #ifdef __GNUC__ ! 194: #define HAVE_ALLOCA ! 195: #define alloca(n) __builtin_alloca(n) ! 196: #if __GNUC__ < 2 ! 197: #define LIB_STANDARD /usr/local/lib/gcc-gnulib -lc ! 198: #endif ! 199: /* -g fails to work, so it is omitted. */ ! 200: /* tranle says that -fstrength-reduce does not help. */ ! 201: #define C_DEBUG_SWITCH -O ! 202: #else ! 203: #define C_ALLOCA ! 204: #define STACK_DIRECTION -1 /* tell alloca.c which way it grows */ ! 205: #define LIBS_MACHINE -lbsd -lrts ! 206: #endif ! 207: ! 208: #define OBJECTS_MACHINE hftctl.o ! 209: #define LD_SWITCH_MACHINE -T0x00400000 -K -e start ! 210: ! 211: #ifdef USG5_3 ! 212: #define XICCC ! 213: #define HAVE_GETWD ! 214: #define HAVE_RENAME ! 215: #undef LD_SWITCH_MACHINE ! 216: #define LD_SWITCH_MACHINE -T0x0 -K -e start ! 217: ! 218: /* Things defined in s-usg5-3.h that need to be overridden. */ ! 219: #undef NOMULTIPLEJOBS ! 220: #undef BROKEN_TIOCGETC ! 221: #undef LIBX10_SYSTEM ! 222: #undef LIBX11_SYSTEM ! 223: #endif ! 224: ! 225: /* Shared libraries are supported in a patch release of ps/2 1.2.1. ! 226: If the system has them, the user can turn them on, and this code ! 227: will make them work. */ ! 228: #ifdef USG_SHARED_LIBRARIES ! 229: #define ORDINARY_LINK ! 230: #undef LIB_STANDARD ! 231: #undef LD_SWITCH_MACHINE ! 232: #if __GNUC__ > 1 ! 233: #define LD_SWITCH_MACHINE -shlib ! 234: #endif ! 235: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.