From 01f1f5ee8b58d5a3dce5250ed3514e9dfa5ceff4 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Thu, 4 Mar 2010 21:30:17 -0800 Subject: [PATCH] Pass -mtune=i686 to assembler when compiling for i686 --- ChangeLog | 9 +++++++++ config.make.in | 1 + configure | 2 ++ configure.in | 1 + sysdeps/i386/configure | 19 +++++++++++++++++++ sysdeps/i386/configure.in | 8 ++++++++ sysdeps/i386/i686/Makefile | 16 ++++++++++++++++ 7 files changed, 56 insertions(+) diff --git a/ChangeLog b/ChangeLog index e9832a632c..57a64e9179 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2010-02-18 H.J. Lu + + * config.make.in (config-asflags-i686): Define. + * configure.in: Substitute libc_cv_as_i686. + * sysdeps/i386/configure.in: Check if assembler supports -mtune=i686. + * sysdeps/i386/i686/Makefile (CFLAGS-.oX): Add -Wa,-mtune=i686 + if assembler supports -mtune=i686. + (ASFLAGS-.oX): Likewise. + 2010-03-04 Ulrich Drepper * elf/elf.h (R_X86_64_SIZE32): Define. diff --git a/config.make.in b/config.make.in index d65706ceac..adfda9d9a4 100644 --- a/config.make.in +++ b/config.make.in @@ -36,6 +36,7 @@ asflags-cpu = @libc_cv_cc_submachine@ config-cflags-sse4 = @libc_cv_cc_sse4@ config-cflags-avx = @libc_cv_cc_avx@ +config-asflags-i686 = @libc_cv_as_i686@ defines = @DEFINES@ sysincludes = @SYSINCLUDES@ diff --git a/configure b/configure index 49ac30db46..b6752d147c 100755 --- a/configure +++ b/configure @@ -657,6 +657,7 @@ xcoff elf ldd_rewrite_script use_ldconfig +libc_cv_as_i686 libc_cv_cc_avx libc_cv_cc_sse4 libc_cv_cpp_asm_debuginfo @@ -8830,6 +8831,7 @@ fi + if test $elf = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_ELF 1 diff --git a/configure.in b/configure.in index 8e506026b8..56849dfc48 100644 --- a/configure.in +++ b/configure.in @@ -2323,6 +2323,7 @@ dnl sysdeps/CPU/configure.in checks set this via arch-specific asm tests AC_SUBST(libc_cv_cpp_asm_debuginfo) AC_SUBST(libc_cv_cc_sse4) AC_SUBST(libc_cv_cc_avx) +AC_SUBST(libc_cv_as_i686) AC_SUBST(use_ldconfig) AC_SUBST(ldd_rewrite_script) diff --git a/sysdeps/i386/configure b/sysdeps/i386/configure index f0c2758a5e..7814b3b313 100644 --- a/sysdeps/i386/configure +++ b/sysdeps/i386/configure @@ -637,3 +637,22 @@ if test $libc_cv_cc_sse4 = yes; then _ACEOF fi + +{ $as_echo "$as_me:$LINENO: checking for assembler -mtune=i686 support" >&5 +$as_echo_n "checking for assembler -mtune=i686 support... " >&6; } +if test "${libc_cv_as_i686+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if { ac_try='${CC-cc} -Wa,-mtune=i686 -xc /dev/null -S -o /dev/null' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + libc_cv_as_i686=yes +else + libc_cv_as_i686=no +fi +fi +{ $as_echo "$as_me:$LINENO: result: $libc_cv_as_i686" >&5 +$as_echo "$libc_cv_as_i686" >&6; } diff --git a/sysdeps/i386/configure.in b/sysdeps/i386/configure.in index 12dceaf844..9fc7fa59fe 100644 --- a/sysdeps/i386/configure.in +++ b/sysdeps/i386/configure.in @@ -47,3 +47,11 @@ fi]) if test $libc_cv_cc_sse4 = yes; then AC_DEFINE(HAVE_SSE4_SUPPORT) fi + +dnl Check if -Wa,-mtune=i686 works. +AC_CACHE_CHECK(for assembler -mtune=i686 support, libc_cv_as_i686, [dnl +if AC_TRY_COMMAND([${CC-cc} -Wa,-mtune=i686 -xc /dev/null -S -o /dev/null]); then + libc_cv_as_i686=yes +else + libc_cv_as_i686=no +fi]) diff --git a/sysdeps/i386/i686/Makefile b/sysdeps/i386/i686/Makefile index dbcf1c33d3..e6b2924584 100644 --- a/sysdeps/i386/i686/Makefile +++ b/sysdeps/i386/i686/Makefile @@ -9,3 +9,19 @@ stack-align-test-flags += -msse ifeq ($(subdir),string) sysdep_routines += cacheinfo endif + +ifeq (yes,$(config-asflags-i686)) +CFLAGS-.o += -Wa,-mtune=i686 +CFLAGS-.os += -Wa,-mtune=i686 +CFLAGS-.op += -Wa,-mtune=i686 +CFLAGS-.og += -Wa,-mtune=i686 +CFLAGS-.ob += -Wa,-mtune=i686 +CFLAGS-.oS += -Wa,-mtune=i686 + +ASFLAGS-.o += -Wa,-mtune=i686 +ASFLAGS-.os += -Wa,-mtune=i686 +ASFLAGS-.op += -Wa,-mtune=i686 +ASFLAGS-.og += -Wa,-mtune=i686 +ASFLAGS-.ob += -Wa,-mtune=i686 +ASFLAGS-.oS += -Wa,-mtune=i686 +endif -- 2.43.5