From 293d9a41805b1eeb440a2c59a717b332cd9c2384 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Wed, 12 Nov 2014 22:35:12 +0000 Subject: [PATCH] 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. --- ChangeLog | 5 +++++ NEWS | 2 +- sysdeps/x86_64/rawmemchr.S | 6 +++--- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 236779e..1a798b5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2014-11-12 Joseph Myers + [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 --- 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 ed93d3f..1b392cb 100644 --- a/sysdeps/x86_64/rawmemchr.S +++ b/sysdeps/x86_64/rawmemchr.S @@ -21,7 +21,7 @@ #include .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) -- 2.7.4