aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2014-11-12 22:35:12 +0000
committerJoseph Myers <joseph@codesourcery.com>2014-11-12 22:35:12 +0000
commit293d9a41805b1eeb440a2c59a717b332cd9c2384 (patch)
treedfb6d99f42866a43bb8f06267d8bd79be776f04f
parentbef8fd6013f7d398661077340753c745a8939279 (diff)
downloadglibc-293d9a41805b1eeb440a2c59a717b332cd9c2384.tar
glibc-293d9a41805b1eeb440a2c59a717b332cd9c2384.tar.gz
glibc-293d9a41805b1eeb440a2c59a717b332cd9c2384.tar.bz2
glibc-293d9a41805b1eeb440a2c59a717b332cd9c2384.zip
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.
-rw-r--r--ChangeLog5
-rw-r--r--NEWS2
-rw-r--r--sysdeps/x86_64/rawmemchr.S6
3 files changed, 9 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 236779e089..1a798b54ea 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
diff --git a/NEWS b/NEWS
index 5f3d4b47f2..e94ba06d83 100644
--- a/NEWS
+++ b/NEWS
@@ -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.
diff --git a/sysdeps/x86_64/rawmemchr.S b/sysdeps/x86_64/rawmemchr.S
index ed93d3f591..1b392cb60c 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)