]> 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 7a74479743382e3d19acb9b0e7a88579027d7cdc..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
-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,
@@ -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,
-  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.
-  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.
@@ -49,15 +51,22 @@ NOTE-END */
 /* 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 */
 
-/* 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.  */
@@ -69,11 +78,6 @@ NOTE-END */
 
 /* #define WORD_MACHINE */
 
-/* Define how to take a char and sign-extend into an int.
-   On machines where char is signed, this is a no-op.  */
-
-#define SIGN_EXTEND_CHAR(c) (c)
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    Ones defined so far include vax, m68000, ns16000, pyramid,
@@ -101,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)
-  
+
 #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.  */
 
@@ -116,6 +148,7 @@ NOTE-END */
 #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
@@ -159,10 +192,21 @@ NOTE-END */
 #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
+#ifdef USG5_4
+#define LIB_STANDARD -lc
+#else /* not USG5_4 */
 #define LIB_STANDARD -lPW -lc
-#endif
+#endif /* not USG5_4 */
+#endif /* LIB_STANDARD */
+
 #define HAVE_ALLOCA
 #define NO_REMAP 
 #define TEXT_START 0
@@ -179,15 +223,17 @@ NOTE-END */
 #define HAVE_ALLOCA
 #endif
 
-#ifdef USG
-#ifdef __STDC__
-#ifndef DONT_DEFINE_SIGNAL
-/* Cast the function argument to avoid warnings.  */
-#define signal(sig, func) (signal (sig, (void (*) (int)) (func)))
-#endif
+#ifdef USG5_4
+#define DATA_SEG_BITS 0x08000000
 #endif
+
+#ifdef MSDOS
+#define NO_REMAP
 #endif
 
-#ifdef USG5_4
-#define DATA_SEG_BITS 0x08000000
+#ifdef WINDOWSNT
+#define VIRT_ADDR_VARIES
+#define DATA_END       get_data_end ()
+#define DATA_START     get_data_start ()
+#define HAVE_ALLOCA
 #endif