aboutsummaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2010-09-28 00:07:12 +0000
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2010-09-28 00:07:12 +0000
commitc9b3ebc566aa3daf9c5d1b7c86f0bf2fd4dbdbb0 (patch)
treeabe9b70798228d019e6509efb68de44278c0e201 /libgcc
parent2375c63d24a10083bf96a66beb190b80e0e0db06 (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/ChangeLog7
-rw-r--r--libgcc/config.host5
-rw-r--r--libgcc/configure20
-rw-r--r--libgcc/configure.ac6
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*-*-*)