This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Fix x86_64 rawmemchr namespace (bug 17572)
- From: Joseph Myers <joseph at codesourcery dot com>
- To: <libc-alpha at sourceware dot org>
- Date: Mon, 10 Nov 2014 17:53:23 +0000
- Subject: Fix x86_64 rawmemchr namespace (bug 17572)
- Authentication-results: sourceware.org; auth=none
rawmemchr is not an ISO C function, but __rawmemchr is called from ISO
C functions, so rawmemchr should be a weak alias. On most
architecture it is, but x86_64 defines the function as rawmemchr with
__rawmemchr as a strong alias. This patch makes x86_64 follow the
same arrangements as other architectures, fixing one of the bugs shown
in the sample output of my proposed tests for such namespace issues
<https://sourceware.org/ml/libc-alpha/2014-11/msg00157.html>.
Tested for x86_64 (testsuite, and that disassembly of installed shared
libraries is unchanged by the patch).
2014-11-10 Joseph Myers <joseph@codesourcery.com>
[BZ #17572]
* sysdeps/x86_64/rawmemchr.S (rawmemchr): Rename to __rawmemchr
and define as weak alias of __rawmemchr.
(__rawmemchr): Do not define as strong alias of rawmemchr.
diff --git a/sysdeps/x86_64/rawmemchr.S b/sysdeps/x86_64/rawmemchr.S
index ed93d3f..1b392cb 100644
--- a/sysdeps/x86_64/rawmemchr.S
+++ b/sysdeps/x86_64/rawmemchr.S
@@ -21,7 +21,7 @@
#include <sysdep.h>
.text
-ENTRY (rawmemchr)
+ENTRY (__rawmemchr)
movd %rsi, %xmm1
mov %rdi, %rcx
@@ -201,7 +201,7 @@ L(return_null):
xor %rax, %rax
ret
-END (rawmemchr)
+END (__rawmemchr)
-strong_alias (rawmemchr, __rawmemchr)
+weak_alias (__rawmemchr, rawmemchr)
libc_hidden_builtin_def (__rawmemchr)
--
Joseph S. Myers
joseph@codesourcery.com