aboutsummaryrefslogtreecommitdiffstats
path: root/src/m
diff options
context:
space:
mode:
authorRichard M. Stallman1996-08-09 22:00:35 +0000
committerRichard M. Stallman1996-08-09 22:00:35 +0000
commit821f376d2ceba5470baa00ef2ee970d298b01b32 (patch)
tree328a563ac8a3c37fffe2d00908bd9ccb3750716c /src/m
parent513dea0acb5ac0b199581b814643a5a3b9460951 (diff)
downloademacs-821f376d2ceba5470baa00ef2ee970d298b01b32.tar.gz
emacs-821f376d2ceba5470baa00ef2ee970d298b01b32.zip
[__ELF__ && __GNUC__] (C_SWITCH_MACHINE): Add -fno-common.
(TEXT_START, DATA_START, DATA_SEG_BITS, UNEXEC): Define only if __ELF__ is not defined. (LINUX_SBRK_BUG): Define only if LINUX and __GNU_LIBRARY__ < 6. (NO_TERMIO): Always define this. No Alpha system should need termio. (COFF, DATA_END): Define only if __ELF__ is not defined.
Diffstat (limited to 'src/m')
-rw-r--r--src/m/alpha.h41
1 files changed, 30 insertions, 11 deletions
diff --git a/src/m/alpha.h b/src/m/alpha.h
index 606b7aab469..09b51fd6993 100644
--- a/src/m/alpha.h
+++ b/src/m/alpha.h
@@ -139,6 +139,21 @@ NOTE-END
139/* #define NO_SOCK_SIGIO */ 139/* #define NO_SOCK_SIGIO */
140 140
141 141
142#ifdef __ELF__
143/* With ELF, make sure that all common symbols get allocated to in the
144 data section. Otherwise, the dump of temacs may miss variables in
145 the shared library that have been initialized. For example, with
146 GNU libc, __malloc_initialized would normally be resolved to the
147 shared library's .bss section, which is fatal. */
148# ifdef __GNUC__
149# define C_SWITCH_MACHINE -fno-common
150# else
151# error What gives? Fix me if DEC Unix supports ELF now.
152# endif
153#endif
154
155#ifndef __ELF__
156
142/* Describe layout of the address space in an executing process. */ 157/* Describe layout of the address space in an executing process. */
143 158
144#define TEXT_START 0x120000000 159#define TEXT_START 0x120000000
@@ -149,6 +164,12 @@ NOTE-END
149 164
150#define DATA_SEG_BITS 0x140000000 165#define DATA_SEG_BITS 0x140000000
151 166
167/* The program to be used for unexec. */
168
169#define UNEXEC unexalpha.o
170
171#endif /* notdef __ELF__ */
172
152#ifdef OSF1 173#ifdef OSF1
153#define ORDINARY_LINK 174#define ORDINARY_LINK
154 175
@@ -175,15 +196,11 @@ NOTE-END
175#define START_FILES pre-crt0.o 196#define START_FILES pre-crt0.o
176#endif 197#endif
177 198
178#ifdef LINUX 199#if defined (LINUX) && __GNU_LIBRARY__ - 0 < 6
179/* This controls a conditional in main. */ 200/* This controls a conditional in main. */
180#define LINUX_SBRK_BUG 201#define LINUX_SBRK_BUG
181#endif 202#endif
182 203
183/* The program to be used for unexec. */
184
185#define UNEXEC unexalpha.o
186
187 204
188#define PNTR_COMPARISON_TYPE unsigned long 205#define PNTR_COMPARISON_TYPE unsigned long
189 206
@@ -273,12 +290,14 @@ extern void r_alloc_free ();
273 while (0) 290 while (0)
274#endif 291#endif
275 292
276#ifdef linux 293/* On the Alpha it's best to avoid including TERMIO since struct
277#define COFF 294 termio and struct termios are mutually incompatible. */
278/* Linux/Alpha doesn't like it if termio.h and termios.h get included
279 simultaneously. */
280#define NO_TERMIO 295#define NO_TERMIO
281 296
282#define TEXT_END ({ extern int _etext; &_etext; }) 297#ifdef LINUX
283#define DATA_END ({ extern int _EDATA; &_EDATA; }) 298# define TEXT_END ({ extern int _etext; &_etext; })
299# ifndef __ELF__
300# define COFF
301# define DATA_END ({ extern int _EDATA; &_EDATA; })
302# endif /* notdef __ELF__ */
284#endif 303#endif