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.zip glibc-380292ba8b97c82a8ede3ed35f6a3c42b7b47466.tar.gz glibc-380292ba8b97c82a8ede3ed35f6a3c42b7b47466.tar.bz2 |
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 e0412de..45a17fb 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 ff875f4..3b558b5 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) |