This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Do not use wildcard symbol names for public versions in Versions files
- From: Joseph Myers <joseph at codesourcery dot com>
- To: <libc-alpha at sourceware dot org>
- Date: Thu, 20 Apr 2017 19:58:37 +0000
- Subject: Do not use wildcard symbol names for public versions in Versions files
- Authentication-results: sourceware.org; auth=none
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.
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.
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;
--
Joseph S. Myers
joseph@codesourcery.com