diff options
author | Joseph Myers <joseph@codesourcery.com> | 2014-11-12 22:35:12 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2014-11-12 22:35:12 +0000 |
commit | 293d9a41805b1eeb440a2c59a717b332cd9c2384 (patch) | |
tree | dfb6d99f42866a43bb8f06267d8bd79be776f04f | |
parent | bef8fd6013f7d398661077340753c745a8939279 (diff) | |
download | glibc-293d9a41805b1eeb440a2c59a717b332cd9c2384.tar.gz glibc-293d9a41805b1eeb440a2c59a717b332cd9c2384.tar.xz 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-- | ChangeLog | 5 | ||||
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | sysdeps/x86_64/rawmemchr.S | 6 |
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) |