]> git.eshelyaron.com Git - emacs.git/commitdiff
[__ELF__] (C_SWITCH_MACHINE): Define.
authorKarl Heuer <kwzh@gnu.org>
Tue, 16 Jul 1996 00:46:45 +0000 (00:46 +0000)
committerKarl Heuer <kwzh@gnu.org>
Tue, 16 Jul 1996 00:46:45 +0000 (00:46 +0000)
(NO_TERMIO): Define this unconditionally.
(COFF): Omit this if ELF.

src/m/alpha.h

index f3ee56f3a73fe16223a0b8c0540897056299cd2c..7b07f6cd9b7173f263c6d9309b5b7913db3867d8 100644 (file)
@@ -139,6 +139,19 @@ NOTE-END
 /* #define NO_SOCK_SIGIO */
 
 
+#ifdef __ELF__
+/* With ELF, make sure that all common symbols get allocated to in the
+   data section.  Otherwise, the dump of temacs may miss variables in
+   the shared library that have been initialized.  For example, with
+   GNU libc, __malloc_initialized would normally be resolved to the
+   shared library's .bss section, which is fatal.  */
+# ifdef __GNUC__
+#  define C_SWITCH_MACHINE     -fno-common
+# else
+#  error What gives?  Fix me if DEC Unix supports ELF now.
+# endif
+#endif
+
 #ifndef __ELF__
 
 /* Describe layout of the address space in an executing process.  */
@@ -277,14 +290,14 @@ extern void r_alloc_free ();
   while (0)
 #endif
 
-#ifdef linux
-#define COFF
-/* Linux/Alpha doesn't like it if termio.h and termios.h get included
-   simultaneously.  */
+/* On the Alpha it's best to avoid including TERMIO since struct
+   termio and struct termios are mutually incompatible.  */
 #define NO_TERMIO
 
-#define TEXT_END ({ extern int _etext; &_etext; })
-#ifndef __ELF__
-# define DATA_END ({ extern int _EDATA; &_EDATA; })
-#endif /* notdef __ELF__ */
+#ifdef LINUX
+# define TEXT_END ({ extern int _etext; &_etext; })
+# ifndef __ELF__
+#  define COFF
+#  define DATA_END ({ extern int _EDATA; &_EDATA; })
+# endif /* ! __ELF__ */
 #endif