glibc/sysdeps
Adhemerval Zanella a1a638dda9 arm: Implement memchr ifunc selection in C
This patch refactor ARM memchr ifunc selector to a C implementation.
No functional change is expected, including ifunc resolution rules.

It also reorganize the ifunc options code:

  1. The memchr_impl.S is renamed to memchr_neon.S and multiple
     compilation options (which route to armv6t2/memchr one) is
     removed.  The code to build if __ARM_NEON__ is defined is
     also simplified.

  2. A memchr_noneon is added (which as build along previous ifunc
     resolution) and includes the armv6t2 direct.

  3. Same as 2. for loader object.

Alongside the aforementioned changes, it also some cleanus:

  - Internal memchr definition (__GI_memcpy) is now a hidden
    symbol.
  - No need to create hidden definition for the ifunc variants.

Checked on armv7-linux-gnueabihf and with a build for arm-linux-gnueabi,
arm-linux-gnueabihf with and without multiarch support and with both
GCC 7.1 and GCC mainline.

	* sysdeps/arm/armv7/multiarch/Makefile [$(subdir) = string]
	(sysdeps_routines): Add memchr_noneon.
	* sysdeps/arm/armv7/multiarch/ifunc-memchr.h: New file.
	* sysdeps/arm/armv7/multiarch/memchr_noneon.S: Likewise.
	* sysdeps/arm/armv7/multiarch/rtld-memchr.S: Likewise.
	* sysdeps/arm/armv7/multiarch/memchr.S: Remove file.
	* sysdeps/arm/armv7/multiarch/memchr.c: New file.
	* sysdeps/arm/armv7/multiarch/memchr_impl.S: Move to ...
	* sysdeps/arm/armv7/multiarch/memchr_neon.S: ... here.

Signed-off-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2017-11-06 17:37:57 -02:00
..
aarch64 aarch64: optimize _dl_tlsdesc_dynamic fast path 2017-11-03 14:50:55 +00:00
alpha Use libm_alias_double for dbl-64 fma. 2017-10-04 20:32:48 +00:00
arm arm: Implement memchr ifunc selection in C 2017-11-06 17:37:57 -02:00
generic Add _Float128 function aliases. 2017-10-18 17:37:18 +00:00
gnu hurd: Fix getifaddrs' and freeifaddrs' symbol exposition 2017-09-28 01:05:18 +02:00
hppa ld.so: Replace (&bootstrap_map) with BOOTSTRAP_MAP 2017-10-03 01:55:12 -07:00
i386 x86: Add sysdeps/x86/sysdep.h 2017-11-01 05:37:26 -07:00
ia64 Add bits/floatn.h defines for more _FloatN / _FloatNx types. 2017-10-20 21:42:51 +00:00
ieee754 Add bits/floatn.h defines for more _FloatN / _FloatNx types. 2017-10-20 21:42:51 +00:00
init_array Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
m68k m68k: Update elf_machine_load_address for static PIE 2017-10-20 03:36:47 -07:00
mach Introduce NO_RTLD_HIDDEN, make hurd use it instead of NO_HIDDEN 2017-10-03 01:33:38 +02:00
microblaze Obsolete pow10 functions. 2017-09-01 21:13:18 +00:00
mips Replace "if if " with "if " in comments 2017-10-25 08:05:51 -07:00
nios2 Enable unwind info in libc-start.c and backtrace.c 2017-09-19 15:07:58 +01:00
nptl Remove add-ons mechanism. 2017-10-05 15:58:13 +00:00
posix sysconf: Fix missing definition of UIO_MAXIOV on Linux [BZ #22321] 2017-10-20 04:10:15 +02:00
powerpc Do not declare _Float128 support for powerpc64le -mlong-double-64 (bug 22402). 2017-11-06 13:26:15 +00:00
pthread aio: Remove internal_function function attribute 2017-08-31 15:59:06 +02:00
s390 S390: Regenerate ULPs 2017-10-05 12:50:49 +02:00
sh Enable unwind info in libc-start.c and backtrace.c 2017-09-19 15:07:58 +01:00
sparc Fix TLS relocations against local symbols on powerpc32, sparc32 and sparc64 2017-10-13 16:14:16 -03:00
tile Remove ancient __signbit inlines 2017-09-28 19:52:13 +01:00
unix aarch64: Guess L1 cache linesize for aarch64 2017-11-03 16:40:27 +00:00
wordsize-32 Build divdi3 only for architecture that required it 2017-04-06 15:14:34 -03:00
wordsize-64 posix: Consolidate Linux glob implementation 2017-09-08 16:34:02 +02:00
x86 x86: Add sysdeps/x86/sysdep.h 2017-11-01 05:37:26 -07:00
x86_64 x86: Add sysdeps/x86/sysdep.h 2017-11-01 05:37:26 -07:00