diff options
Diffstat (limited to 'libbb')
-rw-r--r-- | libbb/ptr_to_globals.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/libbb/ptr_to_globals.c b/libbb/ptr_to_globals.c index f8ccbf142..48cf8d86c 100644 --- a/libbb/ptr_to_globals.c +++ b/libbb/ptr_to_globals.c | |||
@@ -5,7 +5,20 @@ | |||
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 | struct globals; | ||
9 | |||
10 | #ifndef GCC_COMBINE | ||
11 | |||
8 | /* We cheat here. It is declared as const ptr in libbb.h, | 12 | /* We cheat here. It is declared as const ptr in libbb.h, |
9 | * but here we make it live in R/W memory */ | 13 | * but here we make it live in R/W memory */ |
10 | struct globals; | ||
11 | struct globals *ptr_to_globals; | 14 | struct globals *ptr_to_globals; |
15 | |||
16 | #else | ||
17 | |||
18 | /* gcc -combine will see through and complain */ | ||
19 | /* Using alternative method which is more likely to break | ||
20 | * on weird architectures, compilers, linkers and so on */ | ||
21 | struct globals *const ptr_to_globals __attribute__ ((section (".data"))); | ||
22 | |||
23 | #endif | ||
24 | |||