diff options
author | Joseph Myers <joseph@codesourcery.com> | 2015-06-12 10:11:35 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2015-06-12 10:11:35 +0000 |
commit | 498c1f6a7c7f7b634d02e740f15789cf68820a54 (patch) | |
tree | c102c3ffb7bb2f3187c788ce16c1e2ab910734e1 /misc | |
parent | 9acacaa02f3b75fddc07a56f3d848df45281a5de (diff) | |
download | glibc-498c1f6a7c7f7b634d02e740f15789cf68820a54.zip glibc-498c1f6a7c7f7b634d02e740f15789cf68820a54.tar.gz glibc-498c1f6a7c7f7b634d02e740f15789cf68820a54.tar.bz2 |
Fix ecvt_r, fcvt_r namespace (bug 18522).
The functions ecvt, fcvt and gcvt, in some standards, bring in
references to ecvt_r and fcvt_r, which aren't in any of those
standards. The calls are correctly to __ecvt_r and __fcvt_r, but then
the names ecvt_r and fcvt_r are defined as strong aliases; this patch
changes them to weak aliases.
Tested for x86_64 and x86 (testsuite, and that disassembly of
installed stripped shared libraries is unchanged by the patch).
[BZ #18522]
* misc/efgcvt_r.c
[LONG_DOUBLE_COMPAT (libc, GLIBC_2_0) && !LONG_DOUBLE_CVT]
(cvt_symbol): Use weak_alias instead of strong_alias.
[LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)] (cvt_symbol): Likewise.
* conform/Makefile (test-xfail-XPG4/stdlib.h/linknamespace):
Remove variable.
(test-xfail-UNIX98/stdlib.h/linknamespace): Likewise.
(test-xfail-XOPEN2K/stdlib.h/linknamespace): Likewise.
Diffstat (limited to 'misc')
-rw-r--r-- | misc/efgcvt_r.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/misc/efgcvt_r.c b/misc/efgcvt_r.c index ea62b6c..2761222 100644 --- a/misc/efgcvt_r.c +++ b/misc/efgcvt_r.c @@ -251,13 +251,13 @@ __APPEND (FUNC_PREFIX, ecvt_r) (value, ndigit, decpt, sign, buf, len) # define cvt_symbol(symbol) \ cvt_symbol_1 (libc, __APPEND (FUNC_PREFIX, symbol), \ APPEND (q, symbol), GLIBC_2_0); \ - strong_alias (__APPEND (FUNC_PREFIX, symbol), APPEND (FUNC_PREFIX, symbol)) + weak_alias (__APPEND (FUNC_PREFIX, symbol), APPEND (FUNC_PREFIX, symbol)) # define cvt_symbol_1(lib, local, symbol, version) \ compat_symbol (lib, local, symbol, version) # endif #else # define cvt_symbol(symbol) \ - strong_alias (__APPEND (FUNC_PREFIX, symbol), APPEND (FUNC_PREFIX, symbol)) + weak_alias (__APPEND (FUNC_PREFIX, symbol), APPEND (FUNC_PREFIX, symbol)) #endif cvt_symbol(fcvt_r); cvt_symbol(ecvt_r); |