From: ian Date: Tue, 28 Sep 2010 00:07:12 +0000 (+0000) Subject: gcc/: X-Git-Tag: upstream/4.9.2~26339 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c9b3ebc566aa3daf9c5d1b7c86f0bf2fd4dbdbb0;p=platform%2Fupstream%2Flinaro-gcc.git gcc/: * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack requires assembler support for CFI directives. libgcc/: * configure.ac: Test whether assembler supports CFI directives. * config.host: Only add t-stack and i386/t-stack-i386 to tmake_file if libgcc_cv_cfi is "yes". * configure: Rebuild. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164671 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 07c71cd..6c7620e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2010-09-27 Ian Lance Taylor + + * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack + requires assembler support for CFI directives. + 2010-09-27 Richard Henderson * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 7d4126b..1d1c300 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -8415,6 +8415,14 @@ ix86_supports_split_stack (bool report ATTRIBUTE_UNUSED) if (report) error ("%<-fsplit-stack%> currently only supported on GNU/Linux"); ret = false; +#else + if (!dwarf2out_do_cfi_asm ()) + { + if (report) + error ("%<-fsplit-stack%> requires " + "assembler support for CFI directives"); + ret = false; + } #endif return ret; diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 1bbebd9..c6ac0b4 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,5 +1,12 @@ 2010-09-27 Ian Lance Taylor + * configure.ac: Test whether assembler supports CFI directives. + * config.host: Only add t-stack and i386/t-stack-i386 to + tmake_file if libgcc_cv_cfi is "yes". + * configure: Rebuild. + +2010-09-27 Ian Lance Taylor + * generic-morestack.h: New file. * generic-morestack.c: New file. * generic-morestack-thread.c: New file. diff --git a/libgcc/config.host b/libgcc/config.host index 8476218..ab43da9 100644 --- a/libgcc/config.host +++ b/libgcc/config.host @@ -602,7 +602,10 @@ case ${host} in i[34567]86-*-linux* | x86_64-*-linux* | \ i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | \ i[34567]86-*-gnu*) - tmake_file="${tmake_file} t-tls t-stack i386/t-stack-i386" + tmake_file="${tmake_file} t-tls" + if test "$libgcc_cv_cfi" = "yes"; then + tmake_file="{$tmake_file} t-stack i386/t-stack-i386" + fi ;; esac diff --git a/libgcc/configure b/libgcc/configure index 5c8e3a0..56195bb 100644 --- a/libgcc/configure +++ b/libgcc/configure @@ -3707,6 +3707,26 @@ $as_echo "$libgcc_cv_fixed_point" >&6; } fixed_point=$libgcc_cv_fixed_point +# Check for assembler CFI support. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether assembler supports CFI directives" >&5 +$as_echo_n "checking whether assembler supports CFI directives... " >&6; } +if test "${libgcc_cv_cfi+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i = __GCC_HAVE_DWARF2_CFI_ASM; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + libgcc_cv_cfi=yes +else + libgcc_cv_cfi=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libgcc_cv_cfi" >&5 +$as_echo "$libgcc_cv_cfi" >&6; } + # Check 32bit or 64bit for x86. case ${host} in i?86*-*-* | x86_64*-*-*) diff --git a/libgcc/configure.ac b/libgcc/configure.ac index 6076637..6bb4844 100644 --- a/libgcc/configure.ac +++ b/libgcc/configure.ac @@ -135,6 +135,12 @@ AC_CACHE_CHECK([whether fixed-point is supported], [libgcc_cv_fixed_point], fixed_point=$libgcc_cv_fixed_point AC_SUBST(fixed_point) +# Check for assembler CFI support. +AC_CACHE_CHECK([whether assembler supports CFI directives], [libgcc_cv_cfi], + [AC_COMPILE_IFELSE([int i = __GCC_HAVE_DWARF2_CFI_ASM;], + [libgcc_cv_cfi=yes], + [libgcc_cv_cfi=no])]) + # Check 32bit or 64bit for x86. case ${host} in i?86*-*-* | x86_64*-*-*)