This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 3/3] sparc: M7 optimized memcpy/mempcpy/memmove/memset/bzero.



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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]