aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2014-12-16 18:31:31 +0000
committerJoseph Myers <joseph@codesourcery.com>2014-12-16 18:31:31 +0000
commit380292ba8b97c82a8ede3ed35f6a3c42b7b47466 (patch)
tree8fb260047cae35d5301e848906d1c145d5a736ad
parent9a44d530c464d081e925b1c1af2b8bbe6e7b3207 (diff)
downloadglibc-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--ChangeLog10
-rw-r--r--NEWS2
-rw-r--r--conform/Makefile4
-rw-r--r--sysdeps/x86_64/memrchr.S6
4 files changed, 14 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index eb60f80..76a9849 100644
--- 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
--- 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 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)