Fix x86_64 memrchr namespace (bug 17719).
authorJoseph Myers <joseph@codesourcery.com>
Tue, 16 Dec 2014 18:31:31 +0000 (18:31 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Tue, 16 Dec 2014 18:31:31 +0000 (18:31 +0000)
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.

ChangeLog
NEWS
conform/Makefile
sysdeps/x86_64/memrchr.S

index eb60f80..76a9849 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
diff --git a/NEWS b/NEWS
index 4434759..c46f51a 100644 (file)
--- 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
index e0412de..45a17fb 100644 (file)
@@ -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
index ff875f4..3b558b5 100644 (file)
@@ -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)