aboutsummaryrefslogtreecommitdiff
path: root/include/wchar.h
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2015-06-03 13:57:40 +0000
committerJoseph Myers <joseph@codesourcery.com>2015-06-03 13:57:40 +0000
commitaca6ea6586fb2368e6659388f55ba3d374913a86 (patch)
tree5c260dd187f8733f706798009b340355d509ab34 /include/wchar.h
parent1a1a6bde63e0af0d5f2f3465ba45338e7513c4e4 (diff)
downloadglibc-aca6ea6586fb2368e6659388f55ba3d374913a86.zip
glibc-aca6ea6586fb2368e6659388f55ba3d374913a86.tar.gz
glibc-aca6ea6586fb2368e6659388f55ba3d374913a86.tar.bz2
Fix fnmatch wmemchr namespace (bug 18468).
fnmatch brings in references to wmemchr, which isn't in all the standards that contain fnmatch, resulting in linknamespace test failures. This patch fixes this in the usual way, making wmemchr into a weak alias for __wmemchr. Tested for x86_64 and x86 (testsuite, and that disassembly of installed shared libraries is unchanged by the patch). [BZ #18468] * wcsmbs/wmemchr.c (wmemchr): Rename to __wmemchr and define as weak alias of __wmemchr. Use libc_hidden_weak. * include/wchar.h (__wmemchr): Declare. Use libc_hidden_proto. * posix/fnmatch.c [HANDLE_MULTIBYTE] (MEMCHR): Use __wmemchr instead of wmemchr.
Diffstat (limited to 'include/wchar.h')
-rw-r--r--include/wchar.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/include/wchar.h b/include/wchar.h
index 7b5e1a1..eb1cb0d 100644
--- a/include/wchar.h
+++ b/include/wchar.h
@@ -87,7 +87,7 @@ libc_hidden_proto (wcsspn)
libc_hidden_proto (wcschr)
/* The C++ overloading of wcschr means we have to repeat the type to
declare __wcschr instead of using typeof, to avoid errors in C++
- tests. */
+ tests. The same applies to __wmemchr. */
extern wchar_t *__wcschr (const wchar_t *__wcs, wchar_t __wc)
__THROW __attribute_pure__;
libc_hidden_proto (__wcschr)
@@ -95,7 +95,10 @@ libc_hidden_proto (wcscoll)
libc_hidden_proto (wcspbrk)
extern typeof (wmemset) __wmemset;
+extern wchar_t *__wmemchr (const wchar_t *__s, wchar_t __c, size_t __n)
+ __THROW __attribute_pure__;
libc_hidden_proto (wmemchr)
+libc_hidden_proto (__wmemchr)
libc_hidden_proto (wmemset)
libc_hidden_proto (__wmemset)