|
|
1.1 ! root 1: /* RTPC AIX machine/system dependent defines ! 2: Copyright (C) 1988 Free Software Foundation, Inc. ! 3: ! 4: This file is part of GNU Emacs. ! 5: ! 6: GNU Emacs is distributed in the hope that it will be useful, ! 7: but WITHOUT ANY WARRANTY. No author or distributor ! 8: accepts responsibility to anyone for the consequences of using it ! 9: or for whether it serves any particular purpose or works at all, ! 10: unless he says so in writing. Refer to the GNU Emacs General Public ! 11: License for full details. ! 12: ! 13: Everyone is granted permission to copy, modify and redistribute ! 14: GNU Emacs, but only under the conditions described in the ! 15: GNU Emacs General Public License. A copy of this license is ! 16: supposed to have been given to you along with GNU Emacs so you ! 17: can know your rights and responsibilities. It should be in a ! 18: file named COPYING. Among other things, the copyright notice ! 19: and this notice must be preserved on all copies. */ ! 20: ! 21: ! 22: /* The following three symbols give information on ! 23: the size of various data types. */ ! 24: ! 25: #define SHORTBITS 16 /* Number of bits in a short */ ! 26: ! 27: #define INTBITS 32 /* Number of bits in an int */ ! 28: ! 29: #define LONGBITS 32 /* Number of bits in a long */ ! 30: ! 31: /* Define BIG_ENDIAN iff lowest-numbered byte in a word ! 32: is the most significant byte. */ ! 33: ! 34: #define BIG_ENDIAN ! 35: ! 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: ! 41: /* Define how to take a char and sign-extend into an int. ! 42: On machines where char is signed, this is a no-op. */ ! 43: ! 44: #define SIGN_EXTEND_CHAR(c) ((((int) (c)) << 24) >> 24) ! 45: ! 46: /* Now define a symbol for the cpu type, if your compiler ! 47: does not define it automatically. */ ! 48: ! 49: #define IBMRTAIX ! 50: ! 51: #ifndef AIX ! 52: #define AIX ! 53: #endif ! 54: ! 55: /* Use type int rather than a union, to represent Lisp_Object */ ! 56: /* This is desirable for most machines. */ ! 57: ! 58: #define NO_UNION_TYPE ! 59: ! 60: /* No load average information appears in the AIX kernel. VRM has this ! 61: info, and if anyone desires they should fix fns.c to get it out of VRM */ ! 62: ! 63: /* Define CANNOT_DUMP on machines where unexec does not work. ! 64: Then the function dump-emacs will not be defined ! 65: and temacs will do (load "loadup") automatically unless told otherwise. */ ! 66: ! 67: /* #define CANNOT_DUMP */ ! 68: ! 69: /* Define addresses, macros, change some setup for dump */ ! 70: ! 71: #undef COFF ! 72: #define NO_REMAP ! 73: #undef static ! 74: /* Since NO_REMAP, problem with statics doesn't exist */ ! 75: ! 76: #define TEXT_START 0x10000000 ! 77: #define TEXT_END 0 ! 78: #define DATA_START 0x20000000 ! 79: #define DATA_END 0 ! 80: ! 81: /* The data segment in this machine always starts at address 0x20000000. ! 82: An address of data cannot be stored correctly in a Lisp object; ! 83: we always lose the high bits. We must tell XPNTR to add them back. */ ! 84: ! 85: #define DATA_SEG_BITS 0x20000000 ! 86: ! 87: #define N_BADMAG(x) BADMAG(x) ! 88: #define N_TXTOFF(x) A_TEXTPOS(x) ! 89: #define N_SYMOFF(x) A_SYMPOS(x) ! 90: #define A_TEXT_OFFSET(HDR) sizeof(HDR) ! 91: #define ADJUST_EXEC_HEADER \ ! 92: unexec_text_start += sizeof(hdr); \ ! 93: unexec_data_start = ohdr.a_dbase ! 94: #undef ADDR_CORRECT ! 95: #define ADDR_CORRECT(x) ((int)(x)) ! 96: ! 97: /* Define C_ALLOCA if this machine does not support a true alloca ! 98: and the one written in C should be used instead. ! 99: Define HAVE_ALLOCA to say that the system provides a properly ! 100: working alloca function and it should be used. ! 101: Define neither one if an assembler-language alloca ! 102: in the file alloca.s should be used. */ ! 103: ! 104: #define C_ALLOCA ! 105: #define STACK_DIRECTION -1 /* tell alloca.c which way it grows */ ! 106: ! 107: /* AIX has PTYs, but they work so differently that they would need ! 108: lots of changes in process.c. Therefore, they are disabled. */ ! 109: ! 110: /* #define HAVE_PTYS */ ! 111: ! 112: /* AIX has IPC. It also has sockets, and either can be used for client/server. ! 113: I would suggest the client/server code be changed to use HAVE_SOCKETS rather ! 114: than BSD as the conditional if sockets provide any advantages. */ ! 115: ! 116: #define HAVE_SYSVIPC ! 117: ! 118: /* AIX has sockets */ ! 119: ! 120: #define HAVE_SOCKETS ! 121: /* #define SKTPAIR */ /* SKTPAIR works, but what is advantage over pipes? */ ! 122: ! 123: /* Specify the font for X to use. */ ! 124: ! 125: #define X_DEFAULT_FONT "Rom14.500" ! 126: ! 127: /* Here override various assumptions in ymakefile */ ! 128: ! 129: /* On AIX 2.2.1, use these definitions instead ! 130: #define C_SWITCH_MACHINE -I/usr/include -Nn2000 ! 131: #define LIBS_MACHINE -lrts ! 132: #define LIBX10_MACHINE -lrts ! 133: #define LIBX11_MACHINE -lrts ! 134: */ ! 135: ! 136: #define C_SWITCH_MACHINE -I/usr/include -I/usr/include/bsd -Nn2000 ! 137: /* need to duplicate -lsock -lbsd -lrts so refs in libX can be resolved */ ! 138: /* order of lib specs in ymakefile should probably be changed. */ ! 139: #define LIBS_MACHINE -lsock -lbsd -lrts ! 140: #define LIBX10_MACHINE -lsock -lbsd -lrts ! 141: #define LIBX11_MACHINE -lsock -lbsd -lrts ! 142: ! 143: #define OBJECTS_MACHINE hftctl.o ! 144: #define START_FILES /lib/crt0.o ! 145: #define LD_SWITCH_MACHINE -n -T0x10000000 -K -e start ! 146: ! 147: #if 0 /* I refuse to promulgate a recommendation that would make ! 148: users unable to debug - RMS. */ ! 149: /* delete the following line to foil optimization, enable debugging */ ! 150: #define C_DEBUG_SWITCH -O ! 151: #endif ! 152: ! 153: ! 154: /* Setup to do some things BSD way - these won't work previous to AIX 2.1.2 */ ! 155: ! 156: #define bzero(t,s) (memset((t),(0),(s))) ! 157: #define bcmp(f,t,s) (memcmp((t),(f),(s))) ! 158: #define vfork fork ! 159: #define killpg( pgrp, sig ) (kill( -(pgrp), (sig) )) ! 160: ! 161: #define BSTRING ! 162: #define HAVE_DUP2 ! 163: #define HAVE_GETTIMEOFDAY ! 164: #define HAVE_SELECT ! 165: #define HAVE_TIMEVAL ! 166: #define HAVE_VFORK ! 167: ! 168: /* But don't use utimes() -- it causes SIGSEGV! Use utime() instead. */ ! 169: #define USE_UTIME ! 170: ! 171: /* getwd is in same object module as getcwd in AIX 2.2, but doesn't exist */ ! 172: /* at all in 2.1.2. So, for compatibility, avoid name collision on 2.2 */ ! 173: #define getwd AIX_getwd ! 174: ! 175: /* AIX defines FIONREAD, but it does not work. */ ! 176: #define BROKEN_FIONREAD
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.