From 3b7aa5bf59c59adccc1c883840db59926bbfc6de Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Tue, 6 Oct 2015 20:47:40 +0000 Subject: [PATCH] Remove configure tests for SSE4 support. GCC added support for -msse4 in version 4.3. Thus the configure tests for it are obsolete, and this patch removes them. Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by this patch). * sysdeps/i386/configure.ac (libc_cv_cc_sse4): Remove configure test. * sysdeps/i386/configure: Regenerated. * sysdeps/i386/i686/multiarch/Makefile [$(config-cflags-sse4) = yes]: Make code unconditional. * sysdeps/i386/i686/multiarch/strcspn.S [HAVE_SSE4_SUPPORT]: Likewise. * sysdeps/i386/i686/multiarch/strspn.S [HAVE_SSE4_SUPPORT]: Likewise. * sysdeps/x86_64/configure.ac (libc_cv_cc_sse4): Remove configure test. * sysdeps/x86_64/configure: Regenerated. * sysdeps/x86_64/multiarch/Makefile [$(config-cflags-sse4) = yes]: Make code unconditional. * sysdeps/x86_64/multiarch/strcspn.S [HAVE_SSE4_SUPPORT]: Likewise. * sysdeps/x86_64/multiarch/strspn.S [HAVE_SSE4_SUPPORT]: Likewise. * config.h.in (HAVE_SSE4_SUPPORT): Remove #undef. --- ChangeLog | 19 +++++++++++++++++++ config.h.in | 3 --- sysdeps/i386/configure | 26 -------------------------- sysdeps/i386/configure.ac | 9 --------- sysdeps/i386/i686/multiarch/Makefile | 6 ++---- sysdeps/i386/i686/multiarch/strcspn.S | 5 ----- sysdeps/i386/i686/multiarch/strspn.S | 5 ----- sysdeps/x86_64/configure | 26 -------------------------- sysdeps/x86_64/configure.ac | 9 --------- sysdeps/x86_64/multiarch/Makefile | 7 ++----- sysdeps/x86_64/multiarch/strcspn.S | 4 ---- sysdeps/x86_64/multiarch/strspn.S | 5 ----- 12 files changed, 23 insertions(+), 101 deletions(-) diff --git a/ChangeLog b/ChangeLog index 09c47efcad..2447be7c5b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,24 @@ 2015-10-06 Joseph Myers + * sysdeps/i386/configure.ac (libc_cv_cc_sse4): Remove configure + test. + * sysdeps/i386/configure: Regenerated. + * sysdeps/i386/i686/multiarch/Makefile + [$(config-cflags-sse4) = yes]: Make code unconditional. + * sysdeps/i386/i686/multiarch/strcspn.S [HAVE_SSE4_SUPPORT]: + Likewise. + * sysdeps/i386/i686/multiarch/strspn.S [HAVE_SSE4_SUPPORT]: + Likewise. + * sysdeps/x86_64/configure.ac (libc_cv_cc_sse4): Remove configure + test. + * sysdeps/x86_64/configure: Regenerated. + * sysdeps/x86_64/multiarch/Makefile [$(config-cflags-sse4) = yes]: + Make code unconditional. + * sysdeps/x86_64/multiarch/strcspn.S [HAVE_SSE4_SUPPORT]: + Likewise. + * sysdeps/x86_64/multiarch/strspn.S [HAVE_SSE4_SUPPORT]: Likewise. + * config.h.in (HAVE_SSE4_SUPPORT): Remove #undef. + * scripts/rpm2dynsym.sh: Remove file. 2015-10-06 Florian Weimer diff --git a/config.h.in b/config.h.in index 865eaf3855..7663376032 100644 --- a/config.h.in +++ b/config.h.in @@ -76,9 +76,6 @@ /* Define if _rtld_local structure should be forced into .sdata section. */ #undef HAVE_SDATA_SECTION -/* Define if gcc supports SSE4. */ -#undef HAVE_SSE4_SUPPORT - /* Define if gcc supports AVX. */ #undef HAVE_AVX_SUPPORT diff --git a/sysdeps/i386/configure b/sysdeps/i386/configure index ab66c08160..8a7837ec46 100644 --- a/sysdeps/i386/configure +++ b/sysdeps/i386/configure @@ -92,32 +92,6 @@ fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSE4 support" >&5 -$as_echo_n "checking for SSE4 support... " >&6; } -if ${libc_cv_cc_sse4+:} false; then : - $as_echo_n "(cached) " >&6 -else - if { ac_try='${CC-cc} -msse4 -xc /dev/null -S -o /dev/null' - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 - (eval $ac_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : - libc_cv_cc_sse4=yes -else - libc_cv_cc_sse4=no -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_sse4" >&5 -$as_echo "$libc_cv_cc_sse4" >&6; } -if test $libc_cv_cc_sse4 = yes; then - $as_echo "#define HAVE_SSE4_SUPPORT 1" >>confdefs.h - -fi -config_vars="$config_vars -config-cflags-sse4 = $libc_cv_cc_sse4" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for assembler -mtune=i686 support" >&5 $as_echo_n "checking for assembler -mtune=i686 support... " >&6; } if ${libc_cv_as_i686+:} false; then : diff --git a/sysdeps/i386/configure.ac b/sysdeps/i386/configure.ac index a3f3067fb7..e7af05600f 100644 --- a/sysdeps/i386/configure.ac +++ b/sysdeps/i386/configure.ac @@ -34,15 +34,6 @@ AC_CHECK_HEADER([cpuid.h], , [AC_MSG_ERROR([gcc must provide the header])], [/* No default includes. */]) -dnl Check if -msse4 works. -AC_CACHE_CHECK(for SSE4 support, libc_cv_cc_sse4, [dnl -LIBC_TRY_CC_OPTION([-msse4], [libc_cv_cc_sse4=yes], [libc_cv_cc_sse4=no]) -]) -if test $libc_cv_cc_sse4 = yes; then - AC_DEFINE(HAVE_SSE4_SUPPORT) -fi -LIBC_CONFIG_VAR([config-cflags-sse4], [$libc_cv_cc_sse4]) - dnl Check if -Wa,-mtune=i686 works. AC_CACHE_CHECK(for assembler -mtune=i686 support, libc_cv_as_i686, [dnl LIBC_TRY_CC_OPTION([-Wa,-mtune=i686], diff --git a/sysdeps/i386/i686/multiarch/Makefile b/sysdeps/i386/i686/multiarch/Makefile index 31bfd39bae..7ccd9c7b79 100644 --- a/sysdeps/i386/i686/multiarch/Makefile +++ b/sysdeps/i386/i686/multiarch/Makefile @@ -24,15 +24,13 @@ sysdep_routines += bzero-sse2 memset-sse2 memcpy-ssse3 mempcpy-ssse3 \ strncase_l-c strncase-c strncase_l-ssse3 \ strcasecmp_l-sse4 strncase_l-sse4 \ bcopy-sse2-unaligned memcpy-sse2-unaligned \ - mempcpy-sse2-unaligned memmove-sse2-unaligned -ifeq (yes,$(config-cflags-sse4)) -sysdep_routines += strcspn-c strpbrk-c strspn-c + mempcpy-sse2-unaligned memmove-sse2-unaligned \ + strcspn-c strpbrk-c strspn-c CFLAGS-varshift.c += -msse4 CFLAGS-strcspn-c.c += -msse4 CFLAGS-strpbrk-c.c += -msse4 CFLAGS-strspn-c.c += -msse4 endif -endif ifeq ($(subdir),wcsmbs) sysdep_routines += wcscmp-sse2 wcscmp-c wcslen-sse2 wcslen-c \ diff --git a/sysdeps/i386/i686/multiarch/strcspn.S b/sysdeps/i386/i686/multiarch/strcspn.S index b669b9797a..985c66c6aa 100644 --- a/sysdeps/i386/i686/multiarch/strcspn.S +++ b/sysdeps/i386/i686/multiarch/strcspn.S @@ -19,9 +19,6 @@ . */ #include - -#ifdef HAVE_SSE4_SUPPORT - #include #include @@ -71,8 +68,6 @@ END(STRCSPN) .globl __GI_STRCSPN; __GI_STRCSPN = STRCSPN_IA32 #endif -#endif /* HAVE_SSE4_SUPPORT */ - #ifdef USE_AS_STRPBRK #include "../../strpbrk.S" #else diff --git a/sysdeps/i386/i686/multiarch/strspn.S b/sysdeps/i386/i686/multiarch/strspn.S index 4ba87be45b..5e48ea1350 100644 --- a/sysdeps/i386/i686/multiarch/strspn.S +++ b/sysdeps/i386/i686/multiarch/strspn.S @@ -19,9 +19,6 @@ . */ #include - -#ifdef HAVE_SSE4_SUPPORT - #include #include @@ -56,6 +53,4 @@ __strspn_ia32: cfi_startproc; \ .globl __GI_strspn; __GI_strspn = __strspn_ia32 #endif -#endif /* HAVE_SSE4_SUPPORT */ - #include "../../strspn.S" diff --git a/sysdeps/x86_64/configure b/sysdeps/x86_64/configure index 552f535ac6..1f54c76f5f 100644 --- a/sysdeps/x86_64/configure +++ b/sysdeps/x86_64/configure @@ -43,32 +43,6 @@ fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSE4 support" >&5 -$as_echo_n "checking for SSE4 support... " >&6; } -if ${libc_cv_cc_sse4+:} false; then : - $as_echo_n "(cached) " >&6 -else - if { ac_try='${CC-cc} -msse4 -xc /dev/null -S -o /dev/null' - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 - (eval $ac_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : - libc_cv_cc_sse4=yes -else - libc_cv_cc_sse4=no -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_sse4" >&5 -$as_echo "$libc_cv_cc_sse4" >&6; } -if test $libc_cv_cc_sse4 = yes; then - $as_echo "#define HAVE_SSE4_SUPPORT 1" >>confdefs.h - -fi -config_vars="$config_vars -config-cflags-sse4 = $libc_cv_cc_sse4" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for AVX support" >&5 $as_echo_n "checking for AVX support... " >&6; } if ${libc_cv_cc_avx+:} false; then : diff --git a/sysdeps/x86_64/configure.ac b/sysdeps/x86_64/configure.ac index e7208c9b30..68824f7efe 100644 --- a/sysdeps/x86_64/configure.ac +++ b/sysdeps/x86_64/configure.ac @@ -5,15 +5,6 @@ AC_CHECK_HEADER([cpuid.h], , [AC_MSG_ERROR([gcc must provide the header])], [/* No default includes. */]) -dnl Check if -msse4 works. -AC_CACHE_CHECK(for SSE4 support, libc_cv_cc_sse4, [dnl -LIBC_TRY_CC_OPTION([-msse4], [libc_cv_cc_sse4=yes], [libc_cv_cc_sse4=no]) -]) -if test $libc_cv_cc_sse4 = yes; then - AC_DEFINE(HAVE_SSE4_SUPPORT) -fi -LIBC_CONFIG_VAR([config-cflags-sse4], [$libc_cv_cc_sse4]) - dnl Check if -mavx works. AC_CACHE_CHECK(for AVX support, libc_cv_cc_avx, [dnl LIBC_TRY_CC_OPTION([-mavx], [libc_cv_cc_avx=yes], [libc_cv_cc_avx=no]) diff --git a/sysdeps/x86_64/multiarch/Makefile b/sysdeps/x86_64/multiarch/Makefile index d10b4d4fb3..396b0b3105 100644 --- a/sysdeps/x86_64/multiarch/Makefile +++ b/sysdeps/x86_64/multiarch/Makefile @@ -17,15 +17,12 @@ sysdep_routines += strncat-c stpncpy-c strncpy-c strcmp-ssse3 \ strcpy-sse2-unaligned strncpy-sse2-unaligned \ stpcpy-sse2-unaligned stpncpy-sse2-unaligned \ strcat-sse2-unaligned strncat-sse2-unaligned \ - strchr-sse2-no-bsf memcmp-ssse3 strstr-sse2-unaligned - -ifeq (yes,$(config-cflags-sse4)) -sysdep_routines += strcspn-c strpbrk-c strspn-c varshift + strchr-sse2-no-bsf memcmp-ssse3 strstr-sse2-unaligned \ + strcspn-c strpbrk-c strspn-c varshift CFLAGS-varshift.c += -msse4 CFLAGS-strcspn-c.c += -msse4 CFLAGS-strpbrk-c.c += -msse4 CFLAGS-strspn-c.c += -msse4 -endif ifeq (yes,$(config-cflags-avx2)) sysdep_routines += memset-avx2 diff --git a/sysdeps/x86_64/multiarch/strcspn.S b/sysdeps/x86_64/multiarch/strcspn.S index 45c69b302c..69e081d86f 100644 --- a/sysdeps/x86_64/multiarch/strcspn.S +++ b/sysdeps/x86_64/multiarch/strcspn.S @@ -19,9 +19,6 @@ . */ #include - -#ifdef HAVE_SSE4_SUPPORT - #include #include @@ -64,7 +61,6 @@ END(STRCSPN) # define END(name) \ cfi_endproc; .size STRCSPN_SSE2, .-STRCSPN_SSE2 #endif -#endif /* HAVE_SSE4_SUPPORT */ #ifdef USE_AS_STRPBRK #include "../strpbrk.S" diff --git a/sysdeps/x86_64/multiarch/strspn.S b/sysdeps/x86_64/multiarch/strspn.S index c4d3b277f0..6fc5af1432 100644 --- a/sysdeps/x86_64/multiarch/strspn.S +++ b/sysdeps/x86_64/multiarch/strspn.S @@ -19,9 +19,6 @@ . */ #include - -#ifdef HAVE_SSE4_SUPPORT - #include #include @@ -50,6 +47,4 @@ END(strspn) cfi_endproc; .size __strspn_sse2, .-__strspn_sse2 #endif -#endif /* HAVE_SSE4_SUPPORT */ - #include "../strspn.S"