From 832d8bc00b66adcb98a1c2064a2d555853ea49ed Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Thu, 20 Apr 2017 20:35:21 +0000 Subject: [PATCH] Do not use wildcard symbol names for public versions in Versions files. As noted in , 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. --- ChangeLog | 20 ++++++++++++++++++++ stdlib/Versions | 6 +++++- wcsmbs/Versions | 5 ++++- 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 31b56a78d8..e60f6c3469 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,23 @@ +2017-04-20 Joseph Myers + + * 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 * io/sys/stat.h: Use __USE_XOPEN2K8 insteaf of __USE_ATFILE for diff --git a/stdlib/Versions b/stdlib/Versions index 415b9945e2..9cade20a06 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 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;