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 /sysdeps | |
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.
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/x86_64/memrchr.S | 6 |
1 files changed, 3 insertions, 3 deletions
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) |