# HG changeset patch
# Parent c7950a736b94d8efa4a0120ac24359bc446b4c0b
Only support -gstabs on Mac OS X if assember supports it (PR target/67973)
@@ -400,12 +400,13 @@ extern GTY(()) int darwin_ms_struct;
#define ASM_DEBUG_SPEC "%{g*:%{!g0:%{!gdwarf*:--gstabs}}}"
-/* We still allow output of STABS. */
-
+/* We still allow output of STABS if the assembler supports it. */
+#ifdef HAVE_AS_STABS_DIRECTIVE
#define DBX_DEBUGGING_INFO 1
+#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
+#endif
#define DWARF2_DEBUGGING_INFO 1
-#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
#define DEBUG_FRAME_SECTION "__DWARF,__debug_frame,regular,debug"
#define DEBUG_INFO_SECTION "__DWARF,__debug_info,regular,debug"
@@ -226,7 +226,11 @@ do { \
compiles default to stabs+. darwin9+ defaults to dwarf-2. */
#ifndef DARWIN_PREFER_DWARF
#undef PREFERRED_DEBUGGING_TYPE
+#ifdef HAVE_AS_STABS_DIRECTIVE
#define PREFERRED_DEBUGGING_TYPE (TARGET_64BIT ? DWARF2_DEBUG : DBX_DEBUG)
+#else
+#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
+#endif
#endif
/* Darwin uses the standard DWARF register numbers but the default
@@ -2909,6 +2909,11 @@ AC_DEFINE_UNQUOTED(HAVE_GAS_SHF_MERGE,
[`if test $gcc_cv_as_shf_merge = yes; then echo 1; else echo 0; fi`],
[Define 0/1 if your assembler supports marking sections with SHF_MERGE flag.])
+gcc_GAS_CHECK_FEATURE([stabs directive], gcc_cv_as_stabs_directive, ,,
+[.stabs "gcc2_compiled.",60,0,0,0],,
+[AC_DEFINE(HAVE_AS_STABS_DIRECTIVE, 1,
+ [Define if your assembler supports .stabs.])])
+
gcc_GAS_CHECK_FEATURE([COMDAT group support (GNU as)],
gcc_cv_as_comdat_group,
[elf,2,16,0], [--fatal-warnings],
@@ -1824,6 +1824,9 @@ time) should be run on this target. Thi
Test system runs executables on a simulator (i.e. slowly) rather than
hardware (i.e. fast).
+@item stabs
+Target supports the stabs debugging format.
+
@item stdint_types
Target has the basic signed and unsigned C types in @code{stdint.h}.
This will be obsolete when GCC ensures a working @code{stdint.h} for
@@ -1,6 +1,5 @@
// Origin: PR c++/51032
-// { dg-do compile { target c++11 } }
-// { dg-skip-if "No stabs" { aarch64*-*-* mmix-*-* *-*-aix* alpha*-*-* hppa*64*-*-* ia64-*-* *-*-vxworks* nios2-*-* } { "*" } { "" } }
+// { dg-do compile { target { c++11 && stabs } } }
// { dg-options "-gstabs+" }
template <class C>
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-skip-if "No stabs" { aarch64*-*-* mmix-*-* *-*-aix* alpha*-*-* hppa*64*-*-* ia64-*-* nios2-*-* tile*-*-* *-*-vxworks } { "*" } { "" } } */
+/* { dg-do compile { target stabs } } */
/* { dg-options "-gstabs+ -fno-eliminate-unused-debug-types" } */
const int foobar = 4;
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-skip-if "No stabs" { aarch64*-*-* mmix-*-* *-*-aix* alpha*-*-* hppa*64*-*-* ia64-*-* tile*-*-* nios2-*-* } { "*" } { "" } } */
+/* { dg-do compile { target stabs } } */
/* { dg-options "-gstabs+ -fno-eliminate-unused-debug-types -ftoplevel-reorder" } */
const int foobar = 4;
@@ -1,8 +1,7 @@
/* Test lang in N_SO stab. */
/* Contributed by Devang Patel <dpatel@apple.com> */
-/* { dg-do compile } */
-/* { dg-skip-if "No stabs" { aarch64*-*-* mmix-*-* *-*-aix* alpha*-*-* hppa*64*-*-* ia64-*-* tile*-*-* nios2-*-* *-*-vxworks* nvptx-*-* } { "*" } { "" } } */
+/* { dg-do compile { target stabs } } */
/* { dg-options "-gstabs" } */
int
@@ -1,7 +1,7 @@
/* Test dead code strip support. */
/* Contributed by Devang Patel <dpatel@apple.com> */
-/* { dg-do compile { target *-*-darwin* } } */
+/* { dg-do compile { target { *-*-darwin* && stabs } } } */
/* { dg-options "-gstabs+ -fno-eliminate-unused-debug-symbols" } */
int
@@ -938,6 +938,15 @@ proc check_effective_target_pthread {} {
} "-pthread"]
}
+# Return 1 if compilation with -gstabs is error-free for trivial
+# code, 0 otherwise.
+
+proc check_effective_target_stabs {} {
+ return [check_no_compiler_messages stabs object {
+ void foo (void) { }
+ } "-gstabs"]
+}
+
# Return 1 if compilation with -mpe-aligned-commons is error-free
# for trivial code, 0 otherwise.
@@ -1,8 +1,7 @@
/* Check if the final SO STABS record goes into the .text section. */
/* Contributed by Ziemowit Laski <zlaski@apple.com> */
-/* { dg-do compile } */
-/* { dg-skip-if "No stabs" { mmix-*-* *-*-aix* alpha*-*-* hppa*64*-*-* ia64-*-* } { "*" } { "" } } */
+/* { dg-do compile { target stabs } } */
/* { dg-options "-gstabs" } */
@interface MyClass