This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH 0/7] PowerPC64le multi-arch
- From: Alan Modra <amodra at gmail dot com>
- To: libc-alpha at sourceware dot org
- Cc: Alan Modra <amodra at gmail dot com>
- Date: Wed, 25 Oct 2017 18:06:17 +1030
- Subject: [PATCH 0/7] PowerPC64le multi-arch
- Authentication-results: sourceware.org; auth=none
powerpc64le is only supported on power8 hardware and later, so it
doesn't really make sense at the moment to build glibc for powerpc64le
with --enable-multi-arch. You get a whole lot of code for older
processors that won't ever be executed, bloating glibc, and needless
ifunc indirection. This patch series sets about fixing this for
powerpc64le. I haven't made it possible to select any base
architecture, as that looked like too much work to tackle, but
hopefully I've written this patch in a way that could be extended.
The first few patches tidy assorted nits, the last one is the meat of
the patch.
Alan Modra (7):
[PowerPC64] Don't define __GI_ variant of isnan for static lib
[PowerPC64] Remove duplicate define in stpncpy-power8.S
[PowerPC64] Wrap str{,n}cmp-power{8,9}.S in IS_IN(libc)
[PowerPC64] Tidy strcasecmp_l-power7.S symbols
[PowerPC64] strncase_l-power7.c should use strncase_l.c
[PowerPC64] sysdep.h doesn't need to be included in multiarch files
[PowerPC64] Multi-arch powerpc64le base arch is power8
sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile | 91 ++++++++++++-----
.../powerpc64/fpu/multiarch/e_expf-power8.S | 10 +-
sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf.c | 8 +-
.../powerpc64/fpu/multiarch/e_hypot-power7.c | 9 +-
sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypot.c | 10 +-
.../powerpc64/fpu/multiarch/e_hypotf-power7.c | 9 +-
sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypotf.c | 10 +-
.../powerpc64/fpu/multiarch/s_ceil-power5+.S | 19 ++--
.../powerpc/powerpc64/fpu/multiarch/s_ceil-ppc64.S | 3 +-
sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil.c | 16 +--
.../powerpc64/fpu/multiarch/s_ceilf-power5+.S | 10 +-
.../powerpc64/fpu/multiarch/s_ceilf-ppc64.S | 2 -
sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf.c | 10 +-
.../powerpc64/fpu/multiarch/s_copysign-power6.S | 23 +++--
.../powerpc64/fpu/multiarch/s_copysign-ppc64.S | 3 +-
.../powerpc/powerpc64/fpu/multiarch/s_copysign.c | 28 +++---
.../powerpc/powerpc64/fpu/multiarch/s_copysignf.c | 8 +-
.../powerpc64/fpu/multiarch/s_cosf-power8.S | 10 +-
.../powerpc/powerpc64/fpu/multiarch/s_cosf-ppc64.c | 2 -
sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf.c | 8 +-
.../powerpc64/fpu/multiarch/s_finite-power7.S | 3 +-
.../powerpc64/fpu/multiarch/s_finite-power8.S | 23 +++--
sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c | 44 ++++----
.../powerpc/powerpc64/fpu/multiarch/s_finitef.c | 12 ++-
.../powerpc64/fpu/multiarch/s_floor-power5+.S | 19 ++--
.../powerpc64/fpu/multiarch/s_floor-ppc64.S | 3 +-
sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor.c | 16 +--
.../powerpc64/fpu/multiarch/s_floorf-power5+.S | 10 +-
.../powerpc64/fpu/multiarch/s_floorf-ppc64.S | 3 -
sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf.c | 10 +-
.../powerpc64/fpu/multiarch/s_isinf-power7.S | 3 +-
.../powerpc64/fpu/multiarch/s_isinf-power8.S | 23 +++--
sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c | 34 ++++---
sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinff.c | 14 +--
.../powerpc64/fpu/multiarch/s_isnan-power5.S | 3 +-
.../powerpc64/fpu/multiarch/s_isnan-power6.S | 3 +-
.../powerpc64/fpu/multiarch/s_isnan-power6x.S | 3 +-
.../powerpc64/fpu/multiarch/s_isnan-power7.S | 3 +-
.../powerpc64/fpu/multiarch/s_isnan-power8.S | 23 +++--
.../powerpc64/fpu/multiarch/s_isnan-ppc64.S | 11 +-
sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c | 34 ++++---
sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnanf.c | 6 +-
.../powerpc64/fpu/multiarch/s_llrint-power6x.S | 3 +-
.../powerpc64/fpu/multiarch/s_llrint-power8.S | 19 ++--
.../powerpc64/fpu/multiarch/s_llrint-ppc64.S | 3 +-
sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint.c | 32 +++---
.../powerpc/powerpc64/fpu/multiarch/s_llrintf.c | 15 +--
.../powerpc64/fpu/multiarch/s_llround-power5+.S | 3 +-
.../powerpc64/fpu/multiarch/s_llround-power6x.S | 21 ++--
.../powerpc64/fpu/multiarch/s_llround-power8.S | 19 ++--
.../powerpc64/fpu/multiarch/s_llround-ppc64.S | 3 +-
.../powerpc/powerpc64/fpu/multiarch/s_llround.c | 32 +++---
.../powerpc64/fpu/multiarch/s_llroundf-ppc64.S | 3 +-
.../powerpc/powerpc64/fpu/multiarch/s_llroundf.c | 15 +--
.../powerpc64/fpu/multiarch/s_logb-power7.c | 15 ++-
sysdeps/powerpc/powerpc64/fpu/multiarch/s_logb.c | 16 +--
.../powerpc64/fpu/multiarch/s_logbf-power7.c | 9 +-
sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbf.c | 10 +-
.../powerpc64/fpu/multiarch/s_logbl-power7.c | 6 +-
sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbl.c | 10 +-
.../powerpc64/fpu/multiarch/s_modf-power5+.c | 15 ++-
sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf.c | 22 ++--
.../powerpc64/fpu/multiarch/s_modff-power5+.c | 9 +-
sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff.c | 6 +-
.../powerpc64/fpu/multiarch/s_round-power5+.S | 19 ++--
.../powerpc64/fpu/multiarch/s_round-ppc64.S | 3 +-
sysdeps/powerpc/powerpc64/fpu/multiarch/s_round.c | 16 +--
.../powerpc64/fpu/multiarch/s_roundf-power5+.S | 10 +-
.../powerpc64/fpu/multiarch/s_roundf-ppc64.S | 2 -
sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf.c | 10 +-
.../powerpc64/fpu/multiarch/s_sinf-power8.S | 10 +-
.../powerpc/powerpc64/fpu/multiarch/s_sinf-ppc64.c | 2 -
sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf.c | 8 +-
.../powerpc64/fpu/multiarch/s_trunc-power5+.S | 19 ++--
.../powerpc64/fpu/multiarch/s_trunc-ppc64.S | 3 +-
sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc.c | 16 +--
.../powerpc64/fpu/multiarch/s_truncf-power5+.S | 10 +-
.../powerpc64/fpu/multiarch/s_truncf-ppc64.S | 2 -
sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf.c | 10 +-
sysdeps/powerpc/powerpc64/multiarch/Makefile | 112 ++++++++++++++-------
sysdeps/powerpc/powerpc64/multiarch/bcopy.c | 6 +-
sysdeps/powerpc/powerpc64/multiarch/bzero.c | 2 +-
.../powerpc/powerpc64/multiarch/ifunc-impl-list.c | 58 +++++++----
.../powerpc/powerpc64/multiarch/memchr-power7.S | 2 -
.../powerpc/powerpc64/multiarch/memchr-power8.S | 14 +--
sysdeps/powerpc/powerpc64/multiarch/memchr.c | 8 +-
.../powerpc/powerpc64/multiarch/memcmp-power4.S | 2 -
.../powerpc/powerpc64/multiarch/memcmp-power7.S | 2 -
.../powerpc/powerpc64/multiarch/memcmp-power8.S | 14 +--
sysdeps/powerpc/powerpc64/multiarch/memcmp.c | 8 +-
sysdeps/powerpc/powerpc64/multiarch/memcpy-a2.S | 2 -
sysdeps/powerpc/powerpc64/multiarch/memcpy-cell.S | 2 -
.../powerpc/powerpc64/multiarch/memcpy-power4.S | 2 -
.../powerpc/powerpc64/multiarch/memcpy-power6.S | 2 -
.../powerpc/powerpc64/multiarch/memcpy-power7.S | 10 +-
sysdeps/powerpc/powerpc64/multiarch/memcpy-ppc64.S | 2 -
sysdeps/powerpc/powerpc64/multiarch/memcpy.c | 4 +-
.../powerpc/powerpc64/multiarch/memmove-power7.S | 14 +--
sysdeps/powerpc/powerpc64/multiarch/memmove.c | 8 +-
.../powerpc/powerpc64/multiarch/mempcpy-power7.S | 14 +--
sysdeps/powerpc/powerpc64/multiarch/mempcpy.c | 6 +-
.../powerpc/powerpc64/multiarch/memrchr-power7.S | 2 -
.../powerpc/powerpc64/multiarch/memrchr-power8.S | 14 +--
sysdeps/powerpc/powerpc64/multiarch/memrchr.c | 8 +-
.../powerpc/powerpc64/multiarch/memset-power4.S | 2 -
.../powerpc/powerpc64/multiarch/memset-power6.S | 2 -
.../powerpc/powerpc64/multiarch/memset-power7.S | 2 -
.../powerpc/powerpc64/multiarch/memset-power8.S | 14 +--
sysdeps/powerpc/powerpc64/multiarch/memset.c | 4 +-
.../powerpc/powerpc64/multiarch/rawmemchr-power7.S | 6 +-
sysdeps/powerpc/powerpc64/multiarch/rawmemchr.c | 8 +-
.../powerpc/powerpc64/multiarch/stpcpy-power8.S | 10 +-
sysdeps/powerpc/powerpc64/multiarch/stpcpy.c | 6 +-
.../powerpc/powerpc64/multiarch/stpncpy-power7.S | 2 -
.../powerpc/powerpc64/multiarch/stpncpy-power8.S | 18 ++--
sysdeps/powerpc/powerpc64/multiarch/stpncpy.c | 2 +-
.../powerpc64/multiarch/strcasecmp-power7.S | 2 -
.../powerpc64/multiarch/strcasecmp-power8.S | 14 +--
sysdeps/powerpc/powerpc64/multiarch/strcasecmp.c | 8 +-
.../powerpc64/multiarch/strcasecmp_l-power7.S | 16 +--
sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l.c | 8 +-
.../powerpc64/multiarch/strcasestr-power8.S | 16 +--
sysdeps/powerpc/powerpc64/multiarch/strcasestr.c | 8 +-
.../powerpc/powerpc64/multiarch/strcat-power8.c | 15 +--
sysdeps/powerpc/powerpc64/multiarch/strcat.c | 2 +-
.../powerpc/powerpc64/multiarch/strchr-power7.S | 2 -
.../powerpc/powerpc64/multiarch/strchr-power8.S | 10 +-
sysdeps/powerpc/powerpc64/multiarch/strchr-ppc64.S | 2 -
sysdeps/powerpc/powerpc64/multiarch/strchr.c | 2 +-
.../powerpc/powerpc64/multiarch/strchrnul-power7.S | 2 -
.../powerpc/powerpc64/multiarch/strchrnul-power8.S | 10 +-
sysdeps/powerpc/powerpc64/multiarch/strchrnul.c | 8 +-
.../powerpc/powerpc64/multiarch/strcmp-power7.S | 12 +--
.../powerpc/powerpc64/multiarch/strcmp-power8.S | 24 +++--
.../powerpc/powerpc64/multiarch/strcmp-power9.S | 12 +--
sysdeps/powerpc/powerpc64/multiarch/strcmp-ppc64.S | 2 -
sysdeps/powerpc/powerpc64/multiarch/strcmp.c | 15 ++-
.../powerpc/powerpc64/multiarch/strcpy-power8.S | 10 +-
sysdeps/powerpc/powerpc64/multiarch/strcpy.c | 4 +-
.../powerpc/powerpc64/multiarch/strcspn-power8.S | 10 +-
sysdeps/powerpc/powerpc64/multiarch/strcspn.c | 10 +-
.../powerpc/powerpc64/multiarch/strlen-power7.S | 2 -
.../powerpc/powerpc64/multiarch/strlen-power8.S | 10 +-
sysdeps/powerpc/powerpc64/multiarch/strlen-ppc64.S | 2 -
sysdeps/powerpc/powerpc64/multiarch/strlen.c | 4 +-
.../powerpc/powerpc64/multiarch/strncase-power8.S | 14 +--
sysdeps/powerpc/powerpc64/multiarch/strncase.c | 8 +-
.../powerpc64/multiarch/strncase_l-power7.c | 12 ++-
sysdeps/powerpc/powerpc64/multiarch/strncase_l.c | 8 +-
.../powerpc/powerpc64/multiarch/strncat-power8.c | 12 ++-
sysdeps/powerpc/powerpc64/multiarch/strncat.c | 2 +-
.../powerpc/powerpc64/multiarch/strncmp-power4.S | 2 -
.../powerpc/powerpc64/multiarch/strncmp-power7.S | 2 -
.../powerpc/powerpc64/multiarch/strncmp-power8.S | 24 +++--
.../powerpc/powerpc64/multiarch/strncmp-power9.S | 12 +--
.../powerpc/powerpc64/multiarch/strncmp-ppc64.S | 2 -
sysdeps/powerpc/powerpc64/multiarch/strncmp.c | 19 ++--
.../powerpc/powerpc64/multiarch/strncpy-power7.S | 2 -
.../powerpc/powerpc64/multiarch/strncpy-power8.S | 16 +--
sysdeps/powerpc/powerpc64/multiarch/strncpy.c | 3 +-
.../powerpc/powerpc64/multiarch/strnlen-power7.S | 2 -
.../powerpc/powerpc64/multiarch/strnlen-power8.S | 14 +--
sysdeps/powerpc/powerpc64/multiarch/strnlen.c | 9 +-
.../powerpc/powerpc64/multiarch/strrchr-power7.S | 2 -
.../powerpc/powerpc64/multiarch/strrchr-power8.S | 10 +-
sysdeps/powerpc/powerpc64/multiarch/strrchr.c | 4 +-
.../powerpc/powerpc64/multiarch/strspn-power8.S | 10 +-
sysdeps/powerpc/powerpc64/multiarch/strspn.c | 4 +-
.../powerpc/powerpc64/multiarch/strstr-power7.S | 28 +++---
sysdeps/powerpc/powerpc64/multiarch/strstr-ppc64.c | 10 +-
sysdeps/powerpc/powerpc64/multiarch/strstr.c | 2 +-
.../powerpc/powerpc64/multiarch/wcschr-power7.c | 9 +-
sysdeps/powerpc/powerpc64/multiarch/wcschr.c | 12 ++-
.../powerpc/powerpc64/multiarch/wcscpy-power7.c | 6 +-
sysdeps/powerpc/powerpc64/multiarch/wcscpy.c | 8 +-
.../powerpc/powerpc64/multiarch/wcsrchr-power7.c | 6 +-
sysdeps/powerpc/powerpc64/multiarch/wcsrchr.c | 8 +-
177 files changed, 1096 insertions(+), 840 deletions(-)
--
Alan Modra
Australia Development Lab, IBM