* Fix __printf_fp wmemset namespace (bug 17574)
@ 2014-11-10 18:38 Joseph Myers
2014-11-12 21:44 ` Roland McGrath
0 siblings, 1 reply; 2+ messages in thread
From: Joseph Myers @ 2014-11-10 18:38 UTC (permalink / raw)
To: libc-alpha
__printf_fp calls wmemset, but that is not an ISO C90 function. This
patch fixes it to call a new __wmemset name instead (with wmemset
being a weak alias), so fixing one of the bugs shown in the sample
output of my proposed tests for such namespace issues
<https://sourceware.org/ml/libc-alpha/2014-11/msg00157.html>.
Tested for x86_64 (testsuite, and that disassembly of installed shared
libraries is unchanged by the patch).
2014-11-10 Joseph Myers <joseph@codesourcery.com>
[BZ #17574]
* wcsmbs/wmemset.c (wmemset): Rename to __wmemset and define as
weak alias of __wmemset. Use libc_hidden_weak.
(__wmemset): Use libc_hidden_def.
* include/wchar.h (__wmemset): Declare. Use libc_hidden_proto.
* stdio-common/printf_fp.c (___printf_fp): Call __wmemset instead
of wmemset.
diff --git a/include/wchar.h b/include/wchar.h
index f927a95..8207a53 100644
--- a/include/wchar.h
+++ b/include/wchar.h
@@ -88,8 +88,10 @@ libc_hidden_proto (wcschr)
libc_hidden_proto (wcscoll)
libc_hidden_proto (wcspbrk)
+extern typeof (wmemset) __wmemset;
libc_hidden_proto (wmemchr)
libc_hidden_proto (wmemset)
+libc_hidden_proto (__wmemset)
/* Now define the internal interfaces. */
extern int __wcscasecmp (const wchar_t *__s1, const wchar_t *__s2)
diff --git a/stdio-common/printf_fp.c b/stdio-common/printf_fp.c
index c8061cb..406180c 100644
--- a/stdio-common/printf_fp.c
+++ b/stdio-common/printf_fp.c
@@ -1112,7 +1112,7 @@ ___printf_fp (FILE *fp,
wstartp[1] = decimalwc;
if (wcp >= wstartp + 2)
{
- wmemset (wstartp + 6, L'0', wcp - (wstartp + 2));
+ __wmemset (wstartp + 6, L'0', wcp - (wstartp + 2));
wcp += 4;
}
else
diff --git a/wcsmbs/wmemset.c b/wcsmbs/wmemset.c
index c499545..a80b815 100644
--- a/wcsmbs/wmemset.c
+++ b/wcsmbs/wmemset.c
@@ -20,7 +20,7 @@
wchar_t *
-wmemset (s, c, n)
+__wmemset (s, c, n)
wchar_t *s;
wchar_t c;
size_t n;
@@ -52,4 +52,6 @@ wmemset (s, c, n)
return s;
}
-libc_hidden_def (wmemset)
+libc_hidden_def (__wmemset)
+weak_alias (__wmemset, wmemset)
+libc_hidden_weak (wmemset)
--
Joseph S. Myers
joseph@codesourcery.com
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Fix __printf_fp wmemset namespace (bug 17574)
2014-11-10 18:38 Fix __printf_fp wmemset namespace (bug 17574) Joseph Myers
@ 2014-11-12 21:44 ` Roland McGrath
0 siblings, 0 replies; 2+ messages in thread
From: Roland McGrath @ 2014-11-12 21:44 UTC (permalink / raw)
To: Joseph Myers; +Cc: libc-alpha
Looks OK.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-11-12 21:44 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-11-10 18:38 Fix __printf_fp wmemset namespace (bug 17574) Joseph Myers
2014-11-12 21:44 ` Roland McGrath
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).