diff options
author | Joseph Myers <joseph@codesourcery.com> | 2014-12-16 18:31:31 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2014-12-16 18:31:31 +0000 |
commit | 380292ba8b97c82a8ede3ed35f6a3c42b7b47466 (patch) | |
tree | 8fb260047cae35d5301e848906d1c145d5a736ad | |
parent | 9a44d530c464d081e925b1c1af2b8bbe6e7b3207 (diff) | |
download | glibc-380292ba8b97c82a8ede3ed35f6a3c42b7b47466.tar glibc-380292ba8b97c82a8ede3ed35f6a3c42b7b47466.tar.gz glibc-380292ba8b97c82a8ede3ed35f6a3c42b7b47466.tar.bz2 glibc-380292ba8b97c82a8ede3ed35f6a3c42b7b47466.zip |
Fix x86_64 memrchr namespace (bug 17719).
On x86_64, memrchr (not a standard function) is defined as a strong
symbol, instead of a weak alias of __memrchr as on other
architectures. This results in linknamespace test failures from the
use of __memrchr from dirname. (Not a conformance issue because of
the mem* reservation, but contrary to glibc conventions.) This patch
makes x86_64 follow other architectures by defining memrchr as a weak
alias.
Tested for x86_64 (testsuite, and that disassembly of installed shared
libraries is unchanged by the patch).
[BZ #17719]
* sysdeps/x86_64/memrchr.S (memrchr): Rename to __memrchr and
define as weak alias of __memrchr.
(__memrchr): Do not define as strong alias of memrchr.
* conform/Makefile (test-xfail-XPG4/libgen.h/linknamespace):
Remove variable.
(test-xfail-UNIX98/libgen.h/linknamespace): Likewise.
(test-xfail-XOPEN2K/libgen.h/linknamespace): Likewise.
(test-xfail-XOPEN2K8/libgen.h/linknamespace): Likewise.
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | conform/Makefile | 4 | ||||
-rw-r--r-- | sysdeps/x86_64/memrchr.S | 6 |
4 files changed, 14 insertions, 8 deletions
@@ -1,5 +1,15 @@ 2014-12-16 Joseph Myers <joseph@codesourcery.com> + [BZ #17719] + * sysdeps/x86_64/memrchr.S (memrchr): Rename to __memrchr and + define as weak alias of __memrchr. + (__memrchr): Do not define as strong alias of memrchr. + * conform/Makefile (test-xfail-XPG4/libgen.h/linknamespace): + Remove variable. + (test-xfail-UNIX98/libgen.h/linknamespace): Likewise. + (test-xfail-XOPEN2K/libgen.h/linknamespace): Likewise. + (test-xfail-XOPEN2K8/libgen.h/linknamespace): Likewise. + [BZ #17717] * inet/if_index.c (if_nametoindex): Rename to __if_nametoindex and define as weak alias of __if_nametoindex. Use libc_hidden_weak. @@ -14,7 +14,7 @@ Version 2.21 17363, 17370, 17371, 17411, 17460, 17475, 17485, 17501, 17506, 17508, 17522, 17555, 17570, 17571, 17572, 17573, 17574, 17581, 17582, 17583, 17584, 17585, 17589, 17594, 17601, 17608, 17616, 17625, 17630, 17633, - 17634, 17647, 17653, 17657, 17664, 17665, 17668, 17682, 17717. + 17634, 17647, 17653, 17657, 17664, 17665, 17668, 17682, 17717, 17719. * CVE-2104-7817 The wordexp function could ignore the WRDE_NOCMD flag under certain input conditions resulting in the execution of a shell for diff --git a/conform/Makefile b/conform/Makefile index e0412de1a4..45a17fb525 100644 --- a/conform/Makefile +++ b/conform/Makefile @@ -359,7 +359,6 @@ test-xfail-XPG4/ctype.h/linknamespace = yes test-xfail-XPG4/fmtmsg.h/linknamespace = yes test-xfail-XPG4/fnmatch.h/linknamespace = yes test-xfail-XPG4/glob.h/linknamespace = yes -test-xfail-XPG4/libgen.h/linknamespace = yes test-xfail-XPG4/netdb.h/linknamespace = yes test-xfail-XPG4/regex.h/linknamespace = yes test-xfail-XPG4/search.h/linknamespace = yes @@ -383,7 +382,6 @@ test-xfail-UNIX98/ctype.h/linknamespace = yes test-xfail-UNIX98/fmtmsg.h/linknamespace = yes test-xfail-UNIX98/fnmatch.h/linknamespace = yes test-xfail-UNIX98/glob.h/linknamespace = yes -test-xfail-UNIX98/libgen.h/linknamespace = yes test-xfail-UNIX98/mqueue.h/linknamespace = yes test-xfail-UNIX98/netdb.h/linknamespace = yes test-xfail-UNIX98/regex.h/linknamespace = yes @@ -398,7 +396,6 @@ test-xfail-XOPEN2K/fcntl.h/linknamespace = yes test-xfail-XOPEN2K/fmtmsg.h/linknamespace = yes test-xfail-XOPEN2K/fnmatch.h/linknamespace = yes test-xfail-XOPEN2K/glob.h/linknamespace = yes -test-xfail-XOPEN2K/libgen.h/linknamespace = yes test-xfail-XOPEN2K/mqueue.h/linknamespace = yes test-xfail-XOPEN2K/netdb.h/linknamespace = yes test-xfail-XOPEN2K/regex.h/linknamespace = yes @@ -425,7 +422,6 @@ test-xfail-XOPEN2K8/dirent.h/linknamespace = yes test-xfail-XOPEN2K8/fcntl.h/linknamespace = yes test-xfail-XOPEN2K8/fmtmsg.h/linknamespace = yes test-xfail-XOPEN2K8/grp.h/linknamespace = yes -test-xfail-XOPEN2K8/libgen.h/linknamespace = yes test-xfail-XOPEN2K8/mqueue.h/linknamespace = yes test-xfail-XOPEN2K8/netdb.h/linknamespace = yes test-xfail-XOPEN2K8/pwd.h/linknamespace = yes diff --git a/sysdeps/x86_64/memrchr.S b/sysdeps/x86_64/memrchr.S index ff875f44ab..3b558b54c4 100644 --- a/sysdeps/x86_64/memrchr.S +++ b/sysdeps/x86_64/memrchr.S @@ -21,7 +21,7 @@ #include <sysdep.h> .text -ENTRY (memrchr) +ENTRY (__memrchr) movd %rsi, %xmm1 sub $16, %rdx @@ -378,5 +378,5 @@ L(length_less16_part2_return): lea 16(%rax, %rdi), %rax ret -END (memrchr) -strong_alias (memrchr, __memrchr) +END (__memrchr) +weak_alias (__memrchr, memrchr) |