]> code.delx.au - gnu-emacs/blobdiff - src/m/ibmrs6000.h
(remove-overlays): Fix last change.
[gnu-emacs] / src / m / ibmrs6000.h
index 9d0872f71756bf8f6c28da2aebf4a46170922b93..3d3e45eda81cdb39942c7e17d73b296a5e9c0f84 100644 (file)
@@ -1,5 +1,6 @@
 /* R2 AIX machine/system dependent defines
-   Copyright (C) 1988 Free Software Foundation, Inc.
+   Copyright (C) 1988, 2002, 2003, 2004, 2005,
+                 2006 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -15,26 +16,22 @@ 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., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* 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.  */
 
-#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
  * group of arguments and treat it as an array of the arguments.  */
@@ -54,24 +51,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 */
@@ -95,19 +102,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.  */
@@ -115,24 +109,80 @@ 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
 #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_SETSID
-#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
-#define LD_SWITCH_MACHINE -Wl,-bnso,-bnodelcsect,-bI:/lib/syscalls.exp,-bI:/usr/lpp/X11/bin/smt.exp
 
-/* AIX supposedly doesn't use this interface, but on thr RS/6000
+#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 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 */
+
+/* arch-tag: 028318ee-a7ae-4a08-804d-cc1e6588d003
+   (do not change this comment) */