]> code.delx.au - gnu-emacs/blobdiff - src/m/intel386.h
[WINDOWSNT]: (VIRT_ADDR_VARIES, DATA_END, DATA_START, HAVE_ALLOCA): Defined.
[gnu-emacs] / src / m / intel386.h
index 254213379dd17464b8da032eb16edc075e8e52f5..e609c5f650dda2705e26a5ff72fe97abc2f4ee03 100644 (file)
@@ -5,7 +5,7 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 
 GNU Emacs is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 1, or (at your option)
+the Free Software Foundation; either version 2, or (at your option)
 any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
@@ -26,12 +26,14 @@ NOTE-START
 Intel 386 (-machine=intel386 or -machine=is386.h)
 
   The possibilities for -opsystem are: bsd4-2, usg5-2-2, usg5-3,
 Intel 386 (-machine=intel386 or -machine=is386.h)
 
   The possibilities for -opsystem are: bsd4-2, usg5-2-2, usg5-3,
-  isc2-2, 386-ix, esix, or xenix.
+  isc2-2, 386-ix, esix, linux, sco3.2v4, and xenix.
 
   18.58 should support a wide variety of operating systems.
   Use isc2-2 for Interactive 386/ix version 2.2.
   Use 386ix for prior versions.
 
   18.58 should support a wide variety of operating systems.
   Use isc2-2 for Interactive 386/ix version 2.2.
   Use 386ix for prior versions.
-  Use esix for Esix.  It isn't clear what to do on an SCO system.
+  Use esix for Esix.
+  Use linux for Linux.
+  It isn't clear what to do on an SCO system.
 
   -machine=is386 is used for an Integrated Solutions 386 machine.
   It may also be correct for Microport systems.
 
   -machine=is386 is used for an Integrated Solutions 386 machine.
   It may also be correct for Microport systems.
@@ -49,15 +51,22 @@ NOTE-END */
 /* The following three symbols give information on
  the size of various data types.  */
 
 /* The following three symbols give information on
  the size of various data types.  */
 
+
+/* Linux defines these in <values.h>, but they can't be used in #if's */
+#undef SHORTBITS
+#undef INTBITS
+#undef LONGBITS
+  
 #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 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 */
 
-/* i386 is not big-endian: lowest numbered byte is least significant. */
+/* Define WORDS_BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
 
 
-/* #undef BIG_ENDIAN */
+#undef WORDS_BIG_ENDIAN
 
 /* 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.  */
 
 /* 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.  */
@@ -96,10 +105,38 @@ NOTE-END */
 
 /* Convert that into an integer that is 100 for a load average of 1.0  */
 #define LOAD_AVE_CVT(x) (((double) (x)) * 100.0 / FSCALE)
 
 /* Convert that into an integer that is 100 for a load average of 1.0  */
 #define LOAD_AVE_CVT(x) (((double) (x)) * 100.0 / FSCALE)
-  
+
 #define FSCALE 256.0         /* determined by experimentation...  */
 #endif
 
 #define FSCALE 256.0         /* determined by experimentation...  */
 #endif
 
+
+#ifdef SOLARIS2
+/* Data type of load average, as read out of kmem.  */
+#define LOAD_AVE_TYPE long
+
+/* Convert that into an integer that is 100 for a load average of 1.0  */
+/* This is totally uncalibrated. */
+#define LOAD_AVE_CVT(x) ((int) (((double) (x)) * 100.0 / FSCALE))
+
+#ifndef SOLARIS2_4
+/* j.w.hawtin@lut.ac.uk says Solaris 2.1 on the X86 needs -lkvm, and it 
+   already has FSCALE defined in a system header.  */
+#define LIBS_MACHINE -lkvm
+
+/* 14/9/84 J.W.Hawtin@lut.ac.uk Solaris 2.1 X86 does not like -traditional 
+   with GCC on the C_SWITCH_SYSTEM flags.  */
+#ifdef __GNUC__
+#undef C_SWITCH_SYSTEM
+#endif /* GCC */
+#define HAVE_VFORK
+
+#endif
+
+/* configure thinks solaris X86 has gethostname, but it does not work,
+   so undefine it.  */
+#undef HAVE_GETHOSTNAME
+
+#else /* not SOLARIS2 */
 #ifdef USG5_4 /* Older USG systems do not support the load average.  */
 /* Data type of load average, as read out of kmem.  */
 
 #ifdef USG5_4 /* Older USG systems do not support the load average.  */
 /* Data type of load average, as read out of kmem.  */
 
@@ -111,6 +148,7 @@ NOTE-END */
 #define LOAD_AVE_CVT(x) ((int) (((double) (x)) * 100.0 / FSCALE))
 #define FSCALE 256.0
 #endif
 #define LOAD_AVE_CVT(x) ((int) (((double) (x)) * 100.0 / FSCALE))
 #define FSCALE 256.0
 #endif
+#endif /* not SOLARIS2 */
 
 /* Define CANNOT_DUMP on machines where unexec does not work.
    Then the function dump-emacs will not be defined
 
 /* Define CANNOT_DUMP on machines where unexec does not work.
    Then the function dump-emacs will not be defined
@@ -154,6 +192,11 @@ NOTE-END */
 #define LIB_STANDARD /lib/386/Slibcfp.a /lib/386/Slibc.a
 #else /* not XENIX */
 
 #define LIB_STANDARD /lib/386/Slibcfp.a /lib/386/Slibc.a
 #else /* not XENIX */
 
+#ifdef SOLARIS2
+#define VALBITS 26
+#define GCTYPEBITS 5
+#endif
+
 /* this brings in alloca() if we're using cc */
 #ifdef USG
 #ifndef LIB_STANDARD
 /* this brings in alloca() if we're using cc */
 #ifdef USG
 #ifndef LIB_STANDARD
@@ -167,7 +210,7 @@ NOTE-END */
 #define HAVE_ALLOCA
 #define NO_REMAP 
 #define TEXT_START 0
 #define HAVE_ALLOCA
 #define NO_REMAP 
 #define TEXT_START 0
-#endif /* not USG */
+#endif /* USG */
 #endif /* not XENIX */
 
 #ifdef BSD
 #endif /* not XENIX */
 
 #ifdef BSD
@@ -183,3 +226,14 @@ NOTE-END */
 #ifdef USG5_4
 #define DATA_SEG_BITS 0x08000000
 #endif
 #ifdef USG5_4
 #define DATA_SEG_BITS 0x08000000
 #endif
+
+#ifdef MSDOS
+#define NO_REMAP
+#endif
+
+#ifdef WINDOWSNT
+#define VIRT_ADDR_VARIES
+#define DATA_END       get_data_end ()
+#define DATA_START     get_data_start ()
+#define HAVE_ALLOCA
+#endif