diff options
author | Karl Heuer <kwzh@gnu.org> | 1996-07-16 00:46:45 +0000 |
---|---|---|
committer | Karl Heuer <kwzh@gnu.org> | 1996-07-16 00:46:45 +0000 |
commit | c8958e9f09d976e19b74e4a3d673f5587257298c (patch) | |
tree | 9e6280a298e369fdd179461a12de0b716b9e245e | |
parent | 16b9b76d13f8c2798b63eb9b807d745a627a8c4d (diff) | |
download | emacs-c8958e9f09d976e19b74e4a3d673f5587257298c.tar.gz emacs-c8958e9f09d976e19b74e4a3d673f5587257298c.tar.bz2 emacs-c8958e9f09d976e19b74e4a3d673f5587257298c.zip |
[__ELF__] (C_SWITCH_MACHINE): Define.
(NO_TERMIO): Define this unconditionally.
(COFF): Omit this if ELF.
-rw-r--r-- | src/m/alpha.h | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/src/m/alpha.h b/src/m/alpha.h index f3ee56f3a73..7b07f6cd9b7 100644 --- a/src/m/alpha.h +++ b/src/m/alpha.h @@ -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 |