From: Joseph Myers Date: Tue, 16 Dec 2014 18:31:31 +0000 (+0000) Subject: Fix x86_64 memrchr namespace (bug 17719). X-Git-Tag: glibc-2.21~213 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=380292ba8b97c82a8ede3ed35f6a3c42b7b47466;p=thirdparty%2Fglibc.git 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. --- diff --git a/ChangeLog b/ChangeLog index eb60f80606a..76a9849e774 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,15 @@ 2014-12-16 Joseph Myers + [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. diff --git a/NEWS b/NEWS index 443475980ad..c46f51ade36 100644 --- a/NEWS +++ b/NEWS @@ -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 e0412de1a48..45a17fb525f 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 ff875f44ab9..3b558b54c4b 100644 --- a/sysdeps/x86_64/memrchr.S +++ b/sysdeps/x86_64/memrchr.S @@ -21,7 +21,7 @@ #include .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)