diff options
author | Joseph Myers <joseph@codesourcery.com> | 2015-10-28 13:29:03 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2015-10-28 13:29:03 +0000 |
commit | c871b9b096e107fe6220e18102f5fb8070b49819 (patch) | |
tree | 19328f2044291fec53c6f0ab3d5d8f0f5ffb1386 /sysdeps | |
parent | 56583289b18a9680e06f6b8b26d05b51e4c39a42 (diff) | |
download | glibc-c871b9b096e107fe6220e18102f5fb8070b49819.zip glibc-c871b9b096e107fe6220e18102f5fb8070b49819.tar.gz glibc-c871b9b096e107fe6220e18102f5fb8070b49819.tar.bz2 |
Remove -mavx2 configure tests.
There are configure tests for the -mavx2 compiler option. AVX2
support was added in GCC 4.7, so these tests are now obsolete; this
patch removes them.
Tested for x86_64 and x86 (testsuite, and that installed stripped
shared libraries are unchanged by the patch).
* sysdeps/i386/configure.ac (libc_cv_cc_avx2): Remove configure
test.
* sysdeps/i386/configure: Regenerated.
* sysdeps/x86_64/configure.ac (libc_cv_cc_avx2): Remove configure
test.
* sysdeps/x86_64/configure: Regenerated.
* config.h.in (HAVE_AVX2_SUPPORT): Remove #undef.
* sysdeps/x86_64/multiarch/Makefile (sysdep_routines): Add
memset-avx2 unconditionally instead of conditionally on
[$(config-cflags-avx2) = yes].
* sysdeps/x86_64/multiarch/ifunc-impl-list.c
(__libc_ifunc_impl_list) [HAVE_AVX2_SUPPORT]: Make code
unconditional.
* sysdeps/x86_64/multiarch/memset.S [HAVE_AVX2_SUPPORT]: Likewise.
* sysdeps/x86_64/multiarch/memset_chk.S
[IS_IN (libc) && SHARED && HAVE_AVX2_SUPPORT]: Change conditional
to [IS_IN (libc) && SHARED].
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/i386/configure | 26 | ||||
-rw-r--r-- | sysdeps/i386/configure.ac | 9 | ||||
-rw-r--r-- | sysdeps/x86_64/configure | 26 | ||||
-rw-r--r-- | sysdeps/x86_64/configure.ac | 9 | ||||
-rw-r--r-- | sysdeps/x86_64/multiarch/Makefile | 6 | ||||
-rw-r--r-- | sysdeps/x86_64/multiarch/ifunc-impl-list.c | 2 | ||||
-rw-r--r-- | sysdeps/x86_64/multiarch/memset.S | 28 | ||||
-rw-r--r-- | sysdeps/x86_64/multiarch/memset_chk.S | 2 |
8 files changed, 15 insertions, 93 deletions
diff --git a/sysdeps/i386/configure b/sysdeps/i386/configure index 1fc13ab..9ae13d6 100644 --- a/sysdeps/i386/configure +++ b/sysdeps/i386/configure @@ -119,32 +119,6 @@ if test $libc_cv_asm_mpx == yes; then fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for AVX2 support" >&5 -$as_echo_n "checking for AVX2 support... " >&6; } -if ${libc_cv_cc_avx2+:} false; then : - $as_echo_n "(cached) " >&6 -else - if { ac_try='${CC-cc} -mavx2 -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_avx2=yes -else - libc_cv_cc_avx2=no -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_avx2" >&5 -$as_echo "$libc_cv_cc_avx2" >&6; } -if test $libc_cv_cc_avx2 = yes; then - $as_echo "#define HAVE_AVX2_SUPPORT 1" >>confdefs.h - -fi -config_vars="$config_vars -config-cflags-avx2 = $libc_cv_cc_avx2" - $as_echo "#define USE_REGPARMS 1" >>confdefs.h diff --git a/sysdeps/i386/configure.ac b/sysdeps/i386/configure.ac index 7f2e4cc..609f147 100644 --- a/sysdeps/i386/configure.ac +++ b/sysdeps/i386/configure.ac @@ -49,15 +49,6 @@ if test $libc_cv_asm_mpx == yes; then AC_DEFINE(HAVE_MPX_SUPPORT) fi -dnl Check if -mavx2 works. -AC_CACHE_CHECK(for AVX2 support, libc_cv_cc_avx2, [dnl -LIBC_TRY_CC_OPTION([-mavx2], [libc_cv_cc_avx2=yes], [libc_cv_cc_avx2=no]) -]) -if test $libc_cv_cc_avx2 = yes; then - AC_DEFINE(HAVE_AVX2_SUPPORT) -fi -LIBC_CONFIG_VAR([config-cflags-avx2], [$libc_cv_cc_avx2]) - AC_DEFINE(USE_REGPARMS) dnl It is always possible to access static and hidden symbols in an diff --git a/sysdeps/x86_64/configure b/sysdeps/x86_64/configure index 8d4d8b8..15058e2 100644 --- a/sysdeps/x86_64/configure +++ b/sysdeps/x86_64/configure @@ -124,32 +124,6 @@ if test $libc_cv_asm_mpx == yes; then fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for AVX2 support" >&5 -$as_echo_n "checking for AVX2 support... " >&6; } -if ${libc_cv_cc_avx2+:} false; then : - $as_echo_n "(cached) " >&6 -else - if { ac_try='${CC-cc} -mavx2 -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_avx2=yes -else - libc_cv_cc_avx2=no -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_avx2" >&5 -$as_echo "$libc_cv_cc_avx2" >&6; } -if test $libc_cv_cc_avx2 = yes; then - $as_echo "#define HAVE_AVX2_SUPPORT 1" >>confdefs.h - -fi -config_vars="$config_vars -config-cflags-avx2 = $libc_cv_cc_avx2" - if test x"$build_mathvec" = xnotset; then build_mathvec=yes fi diff --git a/sysdeps/x86_64/configure.ac b/sysdeps/x86_64/configure.ac index 14b9580..e2fe3da 100644 --- a/sysdeps/x86_64/configure.ac +++ b/sysdeps/x86_64/configure.ac @@ -45,15 +45,6 @@ if test $libc_cv_asm_mpx == yes; then AC_DEFINE(HAVE_MPX_SUPPORT) fi -dnl Check if -mavx2 works. -AC_CACHE_CHECK(for AVX2 support, libc_cv_cc_avx2, [dnl -LIBC_TRY_CC_OPTION([-mavx2], [libc_cv_cc_avx2=yes], [libc_cv_cc_avx2=no]) -]) -if test $libc_cv_cc_avx2 = yes; then - AC_DEFINE(HAVE_AVX2_SUPPORT) -fi -LIBC_CONFIG_VAR([config-cflags-avx2], [$libc_cv_cc_avx2]) - if test x"$build_mathvec" = xnotset; then build_mathvec=yes fi diff --git a/sysdeps/x86_64/multiarch/Makefile b/sysdeps/x86_64/multiarch/Makefile index 396b0b3..bb811c2 100644 --- a/sysdeps/x86_64/multiarch/Makefile +++ b/sysdeps/x86_64/multiarch/Makefile @@ -18,15 +18,11 @@ sysdep_routines += strncat-c stpncpy-c strncpy-c strcmp-ssse3 \ stpcpy-sse2-unaligned stpncpy-sse2-unaligned \ strcat-sse2-unaligned strncat-sse2-unaligned \ strchr-sse2-no-bsf memcmp-ssse3 strstr-sse2-unaligned \ - strcspn-c strpbrk-c strspn-c varshift + strcspn-c strpbrk-c strspn-c varshift memset-avx2 CFLAGS-varshift.c += -msse4 CFLAGS-strcspn-c.c += -msse4 CFLAGS-strpbrk-c.c += -msse4 CFLAGS-strspn-c.c += -msse4 - -ifeq (yes,$(config-cflags-avx2)) -sysdep_routines += memset-avx2 -endif endif ifeq ($(subdir),wcsmbs) diff --git a/sysdeps/x86_64/multiarch/ifunc-impl-list.c b/sysdeps/x86_64/multiarch/ifunc-impl-list.c index e5c517e..5c0c219 100644 --- a/sysdeps/x86_64/multiarch/ifunc-impl-list.c +++ b/sysdeps/x86_64/multiarch/ifunc-impl-list.c @@ -70,7 +70,6 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, __memmove_ssse3) IFUNC_IMPL_ADD (array, i, memmove, 1, __memmove_sse2)) -#ifdef HAVE_AVX2_SUPPORT /* Support sysdeps/x86_64/multiarch/memset_chk.S. */ IFUNC_IMPL (i, name, __memset_chk, IFUNC_IMPL_ADD (array, i, __memset_chk, 1, @@ -85,7 +84,6 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, IFUNC_IMPL_ADD (array, i, memset, HAS_ARCH_FEATURE (AVX2_Usable), __memset_avx2)) -#endif /* Support sysdeps/x86_64/multiarch/stpncpy.S. */ IFUNC_IMPL (i, name, stpncpy, diff --git a/sysdeps/x86_64/multiarch/memset.S b/sysdeps/x86_64/multiarch/memset.S index 16fefa7..dbc00d2 100644 --- a/sysdeps/x86_64/multiarch/memset.S +++ b/sysdeps/x86_64/multiarch/memset.S @@ -17,13 +17,12 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#ifdef HAVE_AVX2_SUPPORT #include <sysdep.h> #include <shlib-compat.h> #include <init-arch.h> /* Define multiple versions only for the definition in lib. */ -# if IS_IN (libc) +#if IS_IN (libc) ENTRY(memset) .type memset, @gnu_indirect_function LOAD_RTLD_GLOBAL_RO_RDX @@ -33,27 +32,26 @@ ENTRY(memset) leaq __memset_avx2(%rip), %rax 2: ret END(memset) -# endif +#endif -# if IS_IN (libc) -# undef memset -# define memset __memset_sse2 +#if IS_IN (libc) +# undef memset +# define memset __memset_sse2 -# undef __memset_chk -# define __memset_chk __memset_chk_sse2 +# undef __memset_chk +# define __memset_chk __memset_chk_sse2 -# ifdef SHARED -# undef libc_hidden_builtin_def +# ifdef SHARED +# undef libc_hidden_builtin_def /* It doesn't make sense to send libc-internal memset calls through a PLT. The speedup we get from using GPR instruction is likely eaten away by the indirect call in the PLT. */ -# define libc_hidden_builtin_def(name) \ +# define libc_hidden_builtin_def(name) \ .globl __GI_memset; __GI_memset = __memset_sse2 -# endif - -# undef strong_alias -# define strong_alias(original, alias) # endif + +# undef strong_alias +# define strong_alias(original, alias) #endif #include "../memset.S" diff --git a/sysdeps/x86_64/multiarch/memset_chk.S b/sysdeps/x86_64/multiarch/memset_chk.S index ef8c64f..e2abb15 100644 --- a/sysdeps/x86_64/multiarch/memset_chk.S +++ b/sysdeps/x86_64/multiarch/memset_chk.S @@ -22,7 +22,7 @@ /* Define multiple versions only for the definition in lib. */ #if IS_IN (libc) -# if defined SHARED && defined HAVE_AVX2_SUPPORT +# ifdef SHARED ENTRY(__memset_chk) .type __memset_chk, @gnu_indirect_function LOAD_RTLD_GLOBAL_RO_RDX |