diff options
-rw-r--r-- | include/libc-internal.h | 8 | ||||
-rw-r--r-- | libc/string/__glibc_strerror_r.c | 7 | ||||
-rw-r--r-- | libc/string/__xpg_strerror_r.c | 9 |
3 files changed, 19 insertions, 5 deletions
diff --git a/include/libc-internal.h b/include/libc-internal.h index dfd1dfc55..74c35422b 100644 --- a/include/libc-internal.h +++ b/include/libc-internal.h @@ -44,12 +44,12 @@ # include <stddef.h> /* sources are built w/ _GNU_SOURCE, this gets undefined */ -#ifdef __USE_GNU -extern int __xpg_strerror_r (int __errnum, char *__buf, size_t __buflen); -libc_hidden_proto(__xpg_strerror_r) -#else +#if defined __USE_XOPEN2K && !defined __USE_GNU extern char *__glibc_strerror_r (int __errnum, char *__buf, size_t __buflen); libc_hidden_proto(__glibc_strerror_r) +#else +extern int __xpg_strerror_r (int __errnum, char *__buf, size_t __buflen); +libc_hidden_proto(__xpg_strerror_r) #endif /* #include <pthread.h> */ diff --git a/libc/string/__glibc_strerror_r.c b/libc/string/__glibc_strerror_r.c index e97e55234..96b881700 100644 --- a/libc/string/__glibc_strerror_r.c +++ b/libc/string/__glibc_strerror_r.c @@ -5,9 +5,13 @@ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. */ +/* get rid of REDIRECT */ +#define strerror_r __hide_strerror_r + #include <features.h> #include <string.h> +#undef strerror_r char *__glibc_strerror_r(int errnum, char *strerrbuf, size_t buflen) { @@ -16,3 +20,6 @@ char *__glibc_strerror_r(int errnum, char *strerrbuf, size_t buflen) return strerrbuf; } libc_hidden_def(__glibc_strerror_r) +#if !defined __USE_XOPEN2K || defined __USE_GNU +strong_alias(__glibc_strerror_r,strerror_r) +#endif diff --git a/libc/string/__xpg_strerror_r.c b/libc/string/__xpg_strerror_r.c index 5979b1e37..3e78da1be 100644 --- a/libc/string/__xpg_strerror_r.c +++ b/libc/string/__xpg_strerror_r.c @@ -5,11 +5,16 @@ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. */ +/* get rid of REDIRECT */ +#define strerror_r __hide_strerror_r + #include <features.h> #include <errno.h> #include <string.h> #include "_syserrmsg.h" +#undef strerror_r + #ifdef __UCLIBC_HAS_ERRNO_MESSAGES__ extern const char _string_syserrmsgs[] attribute_hidden; @@ -267,4 +272,6 @@ int __xpg_strerror_r(int errnum, char *strerrbuf, size_t buflen) #endif /* __UCLIBC_HAS_ERRNO_MESSAGES__ */ libc_hidden_def(__xpg_strerror_r) -strong_alias_untyped(__xpg_strerror_r, strerror_r) +#if defined __USE_XOPEN2K && !defined __USE_GNU +strong_alias(__xpg_strerror_r,strerror_r) +#endif |