diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2008-04-11 11:27:29 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2008-04-11 11:27:29 +0000 |
commit | 93b8263652ac001247ff923499bdc04ab0a1a4c4 (patch) | |
tree | 9c608c11471a562bbb359ec661cb4e3a9cd5489a /shell/ash_ptr_hack.c | |
parent | 80f647c21c4457b5f74f5cdd87b789a0fa0d7c0d (diff) | |
download | busybox-w32-93b8263652ac001247ff923499bdc04ab0a1a4c4.tar.gz busybox-w32-93b8263652ac001247ff923499bdc04ab0a1a4c4.tar.bz2 busybox-w32-93b8263652ac001247ff923499bdc04ab0a1a4c4.zip |
fix build with gcc -combine
Diffstat (limited to 'shell/ash_ptr_hack.c')
-rw-r--r-- | shell/ash_ptr_hack.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/shell/ash_ptr_hack.c b/shell/ash_ptr_hack.c index 490b73b6d..68d907292 100644 --- a/shell/ash_ptr_hack.c +++ b/shell/ash_ptr_hack.c | |||
@@ -5,12 +5,25 @@ | |||
5 | * Licensed under GPLv2, see file LICENSE in this tarball for details. | 5 | * Licensed under GPLv2, see file LICENSE in this tarball for details. |
6 | */ | 6 | */ |
7 | 7 | ||
8 | /* We cheat here. They are declared as const ptr in ash.c, | ||
9 | * but here we make them live in R/W memory */ | ||
10 | struct globals_misc; | 8 | struct globals_misc; |
11 | struct globals_memstack; | 9 | struct globals_memstack; |
12 | struct globals_var; | 10 | struct globals_var; |
13 | 11 | ||
12 | #ifndef GCC_COMBINE | ||
13 | |||
14 | /* We cheat here. They are declared as const ptr in ash.c, | ||
15 | * but here we make them live in R/W memory */ | ||
14 | struct globals_misc *ash_ptr_to_globals_misc; | 16 | struct globals_misc *ash_ptr_to_globals_misc; |
15 | struct globals_memstack *ash_ptr_to_globals_memstack; | 17 | struct globals_memstack *ash_ptr_to_globals_memstack; |
16 | struct globals_var *ash_ptr_to_globals_var; | 18 | struct globals_var *ash_ptr_to_globals_var; |
19 | |||
20 | #else | ||
21 | |||
22 | /* gcc -combine will see through and complain */ | ||
23 | /* Using alternative method which is more likely to break | ||
24 | * on weird architectures, compilers, linkers and so on */ | ||
25 | struct globals_misc *const ash_ptr_to_globals_misc __attribute__ ((section (".data"))); | ||
26 | struct globals_memstack *const ash_ptr_to_globals_memstack __attribute__ ((section (".data"))); | ||
27 | struct globals_var *const ash_ptr_to_globals_var __attribute__ ((section (".data"))); | ||
28 | |||
29 | #endif | ||