Fix x86_64 rawmemchr namespace (bug 17572).
authorJoseph Myers <joseph@codesourcery.com>
Wed, 12 Nov 2014 22:35:12 +0000 (22:35 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Wed, 12 Nov 2014 22:35:12 +0000 (22:35 +0000)
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.

ChangeLog
NEWS
sysdeps/x86_64/rawmemchr.S

index 236779e..1a798b5 100644 (file)
--- 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 5f3d4b4..e94ba06 100644 (file)
--- 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.
 \f
index ed93d3f..1b392cb 100644 (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)