diff options
author | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-09-28 00:07:12 +0000 |
---|---|---|
committer | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-09-28 00:07:12 +0000 |
commit | c9b3ebc566aa3daf9c5d1b7c86f0bf2fd4dbdbb0 (patch) | |
tree | abe9b70798228d019e6509efb68de44278c0e201 /libgcc | |
parent | 2375c63d24a10083bf96a66beb190b80e0e0db06 (diff) |
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
Diffstat (limited to 'libgcc')
-rw-r--r-- | libgcc/ChangeLog | 7 | ||||
-rw-r--r-- | libgcc/config.host | 5 | ||||
-rw-r--r-- | libgcc/configure | 20 | ||||
-rw-r--r-- | libgcc/configure.ac | 6 |
4 files changed, 37 insertions, 1 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 1bbebd96fa6..c6ac0b40183 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,5 +1,12 @@ 2010-09-27 Ian Lance Taylor <iant@google.com> + * 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 <iant@google.com> + * 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 8476218216c..ab43da96cfb 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 5c8e3a01ba3..56195bb106d 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 60766371d3a..6bb4844b882 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*-*-*) |