[PATCH 3/3] sparc: M7 optimized memcpy/mempcpy/memmove/memset/bzero.
Adhemerval Zanella
adhemerval.zanella@linaro.org
Wed Oct 4 19:53:00 GMT 2017
On 03/10/2017 17:49, Joseph Myers wrote:
> On Tue, 3 Oct 2017, Adhemerval Zanella wrote:
>
>> SPARC is the only one still using ifunc resolvers coded in assembly and
>> currently there is no gain in continuing doing so. You can rebase your next
>
> ARM resolvers are in assembly, and changing them to C would break the
> build with GCC mainline as the ifunc attribute is not enabled by default
> there for ARM.
>
It is possible to implement the ARM resolvers in C and built it with GCC
mainline with two adjustments along with default _ifunc macro:
1. Add the assembly directives for libc_hidden_builtin_def (memcpy)
using asm as:
asm (".globl __GI_memcpy;"
".hidden __GI_memcpy;"
"__GI_memcpy = memcpy");
2. Circle around which I think it is a GCC bug which it is placing the
very asm statements from 1. before memcpy resolvers definition
and thus conflicting with the symbol-hacks.h. I had to disable
the asm alias from symbol-hacks.h with an extra preprocessor.
I am checking on both arm-linux-gnueabihf and arm-linux-gnueabi and I
will prepare a patch.
More information about the Libc-alpha
mailing list