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.

Tested for x86_64 (testsuite, and that disassembly of installed shared
libraries is unchanged by the patch).

	[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.
This commit is contained in:
Joseph Myers 2014-11-12 22:35:12 +00:00
parent bef8fd6013
commit 293d9a4180
3 changed files with 9 additions and 4 deletions

View File

@ -1,5 +1,10 @@
2014-11-12 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.
[BZ #17571]
* stdlib/msort.c (qsort_r): Rename to __qsort_r and define as weak
alias of __qsort_r.

2
NEWS
View File

@ -11,7 +11,7 @@ Version 2.21
6652, 12926, 14132, 14138, 14171, 15215, 15884, 17266, 17344, 17363,
17370, 17371, 17411, 17460, 17475, 17485, 17501, 17506, 17508, 17522,
17555, 17570, 17571, 17583, 17584.
17555, 17570, 17571, 17572, 17583, 17584.
* New locales: tu_IN, bh_IN.

View File

@ -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)