diff options
-rw-r--r-- | include/features.h | 8 | ||||
-rw-r--r-- | include/gnu-versions.h | 29 |
2 files changed, 34 insertions, 3 deletions
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 */ |