]> code.delx.au - gnu-emacs/blobdiff - src/m/ibmrs6000.h
*** empty log message ***
[gnu-emacs] / src / m / ibmrs6000.h
index 221d0ce2f95831b84d41e99ab68982ba348ff229..51f809c45ff6563d5b20379577021a7ea53bfe44 100644 (file)
@@ -1,5 +1,5 @@
 /* R2 AIX machine/system dependent defines
-   Copyright (C) 1988 Free Software Foundation, Inc.
+   Copyright (C) 1988, 2002 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -15,29 +15,21 @@ GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with GNU Emacs; see the file COPYING.  If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
 
 
 /* The following line tells the configuration script what sort of 
    operating system this machine is likely to run.
    USUAL-OPSYS="aix3-1"  */
 
-/* The following three symbols give information on
- the size of various data types.  */
-
-#define SHORTBITS 16           /* Number of bits in a short */
-
-#define INTBITS 32             /* Number of bits in an int */
-
-#define LONGBITS 32            /* Number of bits in a long */
-
-/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+/* Define WORDS_BIG_ENDIAN iff lowest-numbered byte in a word
    is the most significant byte.  */
 
-/* This conflicts with something in the system headers,
-   and isn't currently used, since NO_UNION_TYPE is defined.  */
-#if 0
-#define BIG_ENDIAN
+#ifdef USG5_4
+#undef WORDS_BIG_ENDIAN
+#else
+#define WORDS_BIG_ENDIAN
 #endif
 
 /* Define NO_ARG_ARRAY if you cannot take the address of the first of a
@@ -58,24 +50,34 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 /* Define CANNOT_DUMP on machines where unexec does not work.
    Then the function dump-emacs will not be defined
    and temacs will do (load "loadup") automatically unless told otherwise.  */
-/* #define CANNOT_DUMP */
+#ifdef USG5_4
+#define CANNOT_DUMP
+#endif
 
+#ifndef UNEXEC
 #define UNEXEC unexaix.o
+#endif
 
 /* Define addresses, macros, change some setup for dump */
 
 #define NO_REMAP
 
+#ifndef USG5_4
 #define TEXT_START 0x10000000
 #define TEXT_END 0
 #define DATA_START 0x20000000
 #define DATA_END 0
+#endif
 
 /* The data segment in this machine always starts at address 0x20000000.
    An address of data cannot be stored correctly in a Lisp object;
    we always lose the high bits.  We must tell XPNTR to add them back. */
 
+#ifndef USG5_4
 #define DATA_SEG_BITS 0x20000000
+#else
+#define DATA_SEG_BITS 0
+#endif
 
 #ifdef CANNOT_DUMP
 /* Define shared memory segment symbols */
@@ -99,19 +101,6 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #undef ADDR_CORRECT
 #define ADDR_CORRECT(x) ((int)(x))
 
-/* Define C_ALLOCA if this machine does not support a true alloca
-   and the one written in C should be used instead.
-   Define HAVE_ALLOCA to say that the system provides a properly
-   working alloca function and it should be used.
-   Define neither one if an assembler-language alloca
-   in the file alloca.s should be used.         */
-
-/* Note: aix3-2.h defines HAVE_ALLOCA; aix3-1.h doesn't.  */
-#ifndef HAVE_ALLOCA
-#define C_ALLOCA
-#define STACK_DIRECTION -1 /* tell alloca.c which way it grows */
-#endif
-
 /* Specify the font for X to use.
    This used to be Rom14.500; that's nice on the X server shipped with
    the RS/6000, but it's not available on other servers.  */
@@ -119,39 +108,77 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 /* Here override various assumptions in ymakefile */
 
+#ifdef AIXHFT
 #define OBJECTS_MACHINE hftctl.o
+#endif
+
+#ifndef USG5_4
 #define C_SWITCH_MACHINE -D_BSD
+#endif
 
 #ifdef AIX3_2
+/* -lpthreads seems to be necessary for Xlib in X11R6, and should be harmless
+   on older versions of X where it happens to exist.  */
+#ifdef HAVE_LIBPTHREADS
+#define LIBS_MACHINE -lrts -lIM -liconv -lpthreads
+#else
 /* IBM's X11R5 use -lIM and -liconv in AIX 3.2.2.  */
 #define LIBS_MACHINE -lrts -lIM -liconv
+#endif
+#else
+#ifdef USG5_4
+#define LIBS_MACHINE
 #else
 #define LIBS_MACHINE -lIM
 #endif
+#endif
 
 #define START_FILES
 #define HAVE_SYSVIPC
-#define HAVE_GETWD
 /*** BUILD 9008 - FIONREAD problem still exists in X-Windows. ***/
 #define BROKEN_FIONREAD
+/* As we define BROKEN_FIONREAD, SIGIO will be undefined in systty.h.
+   But, on AIX, SIGAIO, SIGPTY, and SIGPOLL are defined as SIGIO,
+   which causes compilation error at init_signals in sysdep.c.  So, we
+   define these macros so that syssignal.h detects them and undefine
+   SIGAIO, SIGPTY and SIGPOLL.  */
+#define BROKEN_SIGAIO
+#define BROKEN_SIGPTY
+#define BROKEN_SIGPOLL
 
 /* Don't try to include sioctl.h or ptem.h.  */
 #undef NEED_SIOCTL
 #undef NEED_PTEM_H
 
 #define ORDINARY_LINK
+
+#ifndef USG5_4
 /* sfreed@unm.edu says add -bI:/usr/lpp/X11/bin/smt.exp for AIX 3.2.4.  */
 /* marc@sti.com (Marc Pawliger) says ibmrs6000.inp is needed to avoid
-   linker error for X11R6 library, which references pthread library
+   linker error for updated X11R5 libraries, which references pthread library
    which most machines don't have.  We use the name .inp instead of .imp
    because .inp is a better convention to use in make-dist for naming
    random input files.  */
+#ifdef THIS_IS_MAKEFILE /* Don't use this in configure.  */
+#ifdef AIX4
+#define LD_SWITCH_MACHINE -Wl,-bnodelcsect
+#else /* not AIX4 */
 #ifdef HAVE_AIX_SMT_EXP
 #define LD_SWITCH_MACHINE -Wl,-bnso,-bnodelcsect,-bI:/lib/syscalls.exp,-bI:$(srcdir)/m/ibmrs6000.inp,-bI:/usr/lpp/X11/bin/smt.exp
 #else
 #define LD_SWITCH_MACHINE -Wl,-bnso,-bnodelcsect,-bI:/lib/syscalls.exp,-bI:$(srcdir)/m/ibmrs6000.inp
 #endif
+#endif /* not AIX4 */
+#endif /* THIS_IS_MAKEFILE */
 
+/* Avoid gcc 2.7.x collect2 bug by using /bin/ld instead.  */
+#if __GNUC__ == 2 && __GNUC_MINOR__ == 7
+#define LD_SWITCH_SITE -B/bin/
+#endif
+
+#ifndef NLIST_STRUCT
 /* AIX supposedly doesn't use this interface, but on the RS/6000
    it apparently does.  */
 #define NLIST_STRUCT
+#endif
+#endif /* USG5_4 */