OSDN Git Service

gcc/:
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 28 Sep 2010 00:07:12 +0000 (00:07 +0000)
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 28 Sep 2010 00:07:12 +0000 (00:07 +0000)
* 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

gcc/ChangeLog
gcc/config/i386/i386.c
libgcc/ChangeLog
libgcc/config.host
libgcc/configure
libgcc/configure.ac

index 07c71cd..6c7620e 100644 (file)
@@ -1,3 +1,8 @@
+2010-09-27  Ian Lance Taylor  <iant@google.com>
+
+       * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
+       requires assembler support for CFI directives.
+
 2010-09-27  Richard Henderson  <rth@redhat.com>
 
        * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
index 7d4126b..1d1c300 100644 (file)
@@ -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;
index 1bbebd9..c6ac0b4 100644 (file)
@@ -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.
index 8476218..ab43da9 100644 (file)
@@ -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
 
index 5c8e3a0..56195bb 100644 (file)
@@ -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*-*-*)
index 6076637..6bb4844 100644 (file)
@@ -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*-*-*)