From 60ecd672487e4039efe8a13df1b0b3404992a809 Mon Sep 17 00:00:00 2001
From: Eric Andersen <andersen@codepoet.org>
Date: Mon, 5 Feb 2001 03:06:57 +0000
Subject: Make the __GLIBC__ define be conditional.  Stub out gnu-versions.h 
 -Erik

---
 include/features.h     |  8 +++++---
 include/gnu-versions.h | 29 +++++++++++++++++++++++++++++
 2 files changed, 34 insertions(+), 3 deletions(-)
 create mode 100644 include/gnu-versions.h

(limited to 'include')

diff --git a/include/features.h b/include/features.h
index 6f920d8ad..f5b8cf74e 100644
--- a/include/features.h
+++ b/include/features.h
@@ -15,9 +15,11 @@
  *  their developers intended.  This is IMHO, pardonable, since these defines
  *  are not really intended to check for the presence of a particular library,
  *  but rather are used to define an _interface_.  */
-#define __GNU_LIBRARY__ 6
-#define __GLIBC__       2
-#define __GLIBC_MINOR__ 1
+#if !defined __LIBC__ || defined __FORCE_GLIBC__ 
+#   define __GNU_LIBRARY__ 6
+#   define __GLIBC__       2
+#   define __GLIBC_MINOR__ 1
+#endif	
 
 /* Make a half-hearted attempt to accomodate non-gcc compilers */
 #ifndef __GNUC__
diff --git a/include/gnu-versions.h b/include/gnu-versions.h
new file mode 100644
index 000000000..f642f6aee
--- /dev/null
+++ b/include/gnu-versions.h
@@ -0,0 +1,29 @@
+/* Header to ignore some special GNU libc interfaces not provided
+ * by uClibc.  */
+
+#ifndef _GNU_VERSIONS_H
+#define	_GNU_VERSIONS_H	1
+
+/* This file exists to avoid uClibc getting into trouble these macros
+   such as the following:
+
+       #define OBSTACK_INTERFACE_VERSION 1
+       #if !defined (_LIBC) && defined (__GNU_LIBRARY__) && __GNU_LIBRARY__ > 1
+       #include <gnu-versions.h>
+       #if _GNU_OBSTACK_INTERFACE_VERSION == OBSTACK_INTERFACE_VERSION
+       #define ELIDE_CODE
+       #endif
+       #endif
+
+   By defining bogus interface versions, I believe we can safely get
+   past such things while continuing to lie and define __GNU_LIBRARY__,
+   thereby getting better compatibility with the majority of the code
+   written for Linux.  */
+
+#define _GNU_OBSTACK_INTERFACE_VERSION	-1 /* vs malloc/obstack.c */
+#define _GNU_REGEX_INTERFACE_VERSION	-1 /* vs posix/regex.c */
+#define _GNU_GLOB_INTERFACE_VERSION	-1 /* vs posix/glob.c */
+#define _GNU_GETOPT_INTERFACE_VERSION	-1 /* vs posix/getopt.c and
+					     posix/getopt1.c */
+
+#endif	/* gnu-versions.h */
-- 
cgit v1.2.3