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]

[PATCH 0/7] PowerPC64le multi-arch


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


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