aboutsummaryrefslogtreecommitdiff
path: root/libbb/ptr_to_globals.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbb/ptr_to_globals.c')
-rw-r--r--libbb/ptr_to_globals.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/libbb/ptr_to_globals.c b/libbb/ptr_to_globals.c
index 48cf8d86c..5f30e2a64 100644
--- a/libbb/ptr_to_globals.c
+++ b/libbb/ptr_to_globals.c
@@ -5,6 +5,8 @@
* Licensed under GPLv2, see file LICENSE in this tarball for details.
*/
+#include <errno.h>
+
struct globals;
#ifndef GCC_COMBINE
@@ -13,12 +15,21 @@ struct globals;
* but here we make it live in R/W memory */
struct globals *ptr_to_globals;
+#ifdef __GLIBC__
+int *bb_errno;
+#endif
+
+
#else
+
/* gcc -combine will see through and complain */
/* Using alternative method which is more likely to break
* on weird architectures, compilers, linkers and so on */
struct globals *const ptr_to_globals __attribute__ ((section (".data")));
+#ifdef __GLIBC__
+int *const bb_errno __attribute__ ((section (".data")));
#endif
+#endif