]> code.delx.au - gnu-emacs/blobdiff - src/m/ibmrs6000.h
(LD_SWITCH_MACHINE): Don't define if using GCC.
[gnu-emacs] / src / m / ibmrs6000.h
index 17a2cf41693b23de16129956b884da55c365affe..0969f2ee71c28a66d08b6b13a609a19e44cffad7 100644 (file)
@@ -22,22 +22,13 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
    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 +49,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 */
@@ -119,15 +120,30 @@ 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
@@ -140,18 +156,27 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #undef NEED_PTEM_H
 
 #define ORDINARY_LINK
+
+#ifndef USG5_4
+#ifndef __GNUC__
 /* 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 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:m/ibmrs6000.inp,-bI:/usr/lpp/X11/bin/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:m/ibmrs6000.inp
+#define LD_SWITCH_MACHINE -Wl,-bnso,-bnodelcsect,-bI:/lib/syscalls.exp,-bI:$(srcdir)/m/ibmrs6000.inp
 #endif
+#endif /* not AIX4 */
+#endif /* not __GNUC__ */
 
-/* AIX supposedly doesn't use this interface, but on thr RS/6000
+/* AIX supposedly doesn't use this interface, but on the RS/6000
    it apparently does.  */
 #define NLIST_STRUCT
+#endif /* USG5_4 */