aboutsummaryrefslogtreecommitdiff
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
parentd76d3703551a362b472c866b5b6089f66f8daa8e (diff)
downloadglibc-832d8bc00b66adcb98a1c2064a2d555853ea49ed.zip
glibc-832d8bc00b66adcb98a1c2064a2d555853ea49ed.tar.gz
glibc-832d8bc00b66adcb98a1c2064a2d555853ea49ed.tar.bz2
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.
-rw-r--r--ChangeLog20
-rw-r--r--stdlib/Versions6
-rw-r--r--wcsmbs/Versions5
3 files changed, 29 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 31b56a7..e60f6c3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,23 @@
+2017-04-20 Joseph Myers <joseph@codesourcery.com>
+
+ * 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.
+
2017-04-20 Adhemerval Zanella <adhemerval.zanella@linaro.org>
* io/sys/stat.h: Use __USE_XOPEN2K8 insteaf of __USE_ATFILE for
diff --git a/stdlib/Versions b/stdlib/Versions
index 415b994..9cade20 100644
--- a/stdlib/Versions
+++ b/stdlib/Versions
@@ -4,7 +4,11 @@ libc {
__xpg_basename;
# functions used in inline functions or macros
- __strto*_internal;
+ __strtod_internal; __strtof_internal; __strtold_internal;
+ __strtol_internal; __strtoll_internal;
+ __strtoul_internal; __strtoull_internal;
+ # functions formerly so used (compatibility symbols)
+ __strtoq_internal; __strtouq_internal;
# compatibility symbol
__secure_getenv;
diff --git a/wcsmbs/Versions b/wcsmbs/Versions
index 1ff5ff3..b8f7bd7 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;