[PATCH 00/12] Remove bcopy and bzero optimizations
Szabolcs Nagy
szabolcs.nagy@arm.com
Mon Feb 21 16:39:04 GMT 2022
The 02/10/2022 16:58, Adhemerval Zanella via Libc-alpha wrote:
> Both symbols are marked as legacy in POSIX.1-2001 and removed on
> POSIX.1-2008, although the prototypes are defined for _GNU_SOURCE
> or _DEFAULT_SOURCE.
>
> Most architectures just route bcopy/bzero to internal memmove/memset
> implementation, however some do implement iFUNC variants when memset
> or memmove are also provided through iFUNC.
>
> However, gcc already replaces bcopy with a memmove and bzero with memset
> on default configuration (to actually get a bstring libc call the code
> requires to omit string.h inclusion and built with --fno-builtin), so
> it is highly unlikely programs are actually calling libc bcopy or
> bzero symbols.
...
> So there is point in keeping such optimization.
>
> Adhemerval Zanella (12):
> ia64: Remove bcopy
> powerpc: Remove bcopy optimizations
> i386: Remove bcopy optimizations
> x86_64: Remove bcopy optimizations
> alpha: Remove bzero optimization
> ia64: Remove bzero optimization
> Remove bzero optimization
> powerpc: Remove powerpc32 bzero optimizations
> powerpc: Remove powerpc64 bzero optimizations
> s390: Remove bzero optimizations
> i686: Remove bzero optimizations
> x86_64: Remove bzero optimizations
i see this does not affect aarch64, but i agree with the principle.
(there was a comment about the x86 bzero code that if __memsetzero
is accepted then it's easier to rename the bzero optimization instead
of removing and readding.)
More information about the Libc-alpha
mailing list