This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Fix x86_64 rawmemchr namespace (bug 17572)


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]