mirror of
git://sourceware.org/git/glibc.git
synced 2025-01-30 12:31:53 +08:00
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].
This commit is contained in:
parent
56583289b1
commit
c871b9b096
20
ChangeLog
20
ChangeLog
@ -1,3 +1,23 @@
|
||||
2015-10-28 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* 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].
|
||||
|
||||
2015-10-27 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* sysdeps/arm/configure.ac (libc_cv_arm_tls_desc): Remove
|
||||
|
@ -71,9 +71,6 @@
|
||||
/* Define if assembler supports Intel MPX. */
|
||||
#undef HAVE_MPX_SUPPORT
|
||||
|
||||
/* Define if gcc supports AVX2. */
|
||||
#undef HAVE_AVX2_SUPPORT
|
||||
|
||||
/* Define if the compiler\'s exception support is based on libunwind. */
|
||||
#undef HAVE_CC_WITH_LIBUNWIND
|
||||
|
||||
|
26
sysdeps/i386/configure
vendored
26
sysdeps/i386/configure
vendored
@ -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
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
26
sysdeps/x86_64/configure
vendored
26
sysdeps/x86_64/configure
vendored
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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,
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user