===================================================================
@@ -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
===================================================================
@@ -135,6 +135,12 @@ AC_CACHE_CHECK([whether fixed-point is s
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*-*-*)
===================================================================
@@ -8415,6 +8415,14 @@ ix86_supports_split_stack (bool report A
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;