diff options
| author | Richard M. Stallman | 1996-08-09 22:00:35 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1996-08-09 22:00:35 +0000 |
| commit | 821f376d2ceba5470baa00ef2ee970d298b01b32 (patch) | |
| tree | 328a563ac8a3c37fffe2d00908bd9ccb3750716c | |
| parent | 513dea0acb5ac0b199581b814643a5a3b9460951 (diff) | |
| download | emacs-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.
| -rw-r--r-- | src/m/alpha.h | 41 |
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 |