about summary refs log tree commit diff
path: root/wcsmbs
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2017-04-20 20:35:21 +0000
committerJoseph Myers <joseph@codesourcery.com>2017-04-20 20:35:21 +0000
commit832d8bc00b66adcb98a1c2064a2d555853ea49ed (patch)
treecac277a795e2bc18847d51969b6c19693ca11c73 /wcsmbs
parentd76d3703551a362b472c866b5b6089f66f8daa8e (diff)
downloadglibc-832d8bc00b66adcb98a1c2064a2d555853ea49ed.tar.gz
glibc-832d8bc00b66adcb98a1c2064a2d555853ea49ed.tar.xz
glibc-832d8bc00b66adcb98a1c2064a2d555853ea49ed.zip
Do not use wildcard symbol names for public versions in Versions files.
As noted in
<https://sourceware.org/ml/libc-alpha/2012-12/msg00240.html>,
stdlib/Versions and wcsmbs/Versions list some functions as
__strto*_internal and __wcsto*_internal rather than explicitly listing
the symbols to be exported (so any new internal function matching one
of those patterns would be wrongly added to version GLIBC_2.0), which
seems like a bad idea.  This patch changes those files to list the
exported symbols explicitly.  There are still entries in
sysdeps/nacl/Versions for __nacl_irt_*, but as GLIBC_PRIVATE symbols
that seems less significant.

Tested with build-many-glibcs.py that installed stripped shared
libraries are unchanged by the patch.

	* stdlib/Versions (__strtod_internal): List explicitly, not as
	wildcard.
	(__strtof_internal): Likewise.
	(__strtold_internal): Likewise.
	(__strtol_internal): Likewise.
	(__strtoll_internal): Likewise.
	(__strtoul_internal): Likewise.
	(__strtoull_internal): Likewise.
	(__strtoq_internal): Likewise.
	(__strtouq_internal): Likewise.
	* wcsmbs/Versions (__wcstod_internal): Likewise.
	(__wcstof_internal): Likewise.
	(__wcstold_internal): Likewise.
	(__wcstol_internal): Likewise.
	(__wcstoll_internal): Likewise.
	(__wcstoul_internal): Likewise.
	(__wcstoull_internal): Likewise.
Diffstat (limited to 'wcsmbs')
-rw-r--r--wcsmbs/Versions5
1 files changed, 4 insertions, 1 deletions
diff --git a/wcsmbs/Versions b/wcsmbs/Versions
index 1ff5ff3057..b8f7bd73eb 100644
--- a/wcsmbs/Versions
+++ b/wcsmbs/Versions
@@ -1,7 +1,10 @@
 libc {
   GLIBC_2.0 {
     # functions used in inline functions or macros
-     __mbrlen; __mbrtowc; __wcsto*_internal;
+     __mbrlen; __mbrtowc;
+    __wcstod_internal; __wcstof_internal; __wcstold_internal;
+    __wcstol_internal; __wcstoll_internal;
+    __wcstoul_internal; __wcstoull_internal;
 
     # b*
     btowc;