Move stabs specific target macros out od svr4.h and elfos.h and into dbxelf.h
authorNick Clifton <nickc@cygnus.com>
Fri, 26 Mar 1999 10:45:27 +0000 (10:45 +0000)
committerNick Clifton <nickc@gcc.gnu.org>
Fri, 26 Mar 1999 10:45:27 +0000 (10:45 +0000)
From-SVN: r25995

gcc/ChangeLog
gcc/config/dbxelf.h [new file with mode: 0644]
gcc/config/elfos.h
gcc/config/svr4.h

index 148c660201e2821ca5ba5192668162704de953f7..c469a6ddf838042378ddfb29a249db6b71e24f77 100644 (file)
@@ -1,3 +1,34 @@
+Fri Mar 26 10:43:47 1999  Nick Clifton  <nickc@cygnus.com>
+
+       * config/svr4.h: Include new header file dbxelf.h.
+       (DBX_DEBUGGING_INFO): Remove definition.
+       (DBX_USE_BINCL): Remove definition.
+       (DBX_BLOCKS_FUNCTION_RELATIVE): Remove definition.
+       (ASM_IDENTIFY_GCC): Remove definition.
+       (ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove definition.
+       (ASM_OUTPUT_SOURCE_LINE): Remove definition.
+       (DBX_FUNCTION_FIRST): Remove definition.
+       (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Remove definition.
+
+       * config/elfos.h: Include new header file dbxelf.h.
+       (DBX_DEBUGGING_INFO): Remove definition.
+       (DBX_BLOCKS_FUNCTION_RELATIVE): Remove definition.
+       (ASM_IDENTIFY_GCC): Remove definition.
+       (ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove definition.
+       (ASM_OUTPUT_SOURCE_LINE): Remove definition.
+       (DBX_FUNCTION_FIRST): Remove definition.
+
+       * config/dbxelf.h: New header file.
+       (DBX_DEBUGGING_INFO): Define.
+       (DBX_BLOCKS_FUNCTION_RELATIVE): Define.
+       (DBX_FUNCTION_FIRST): Define.
+       (DBX_USE_BINCL): Define.
+       (DBX_CONTIN_LENGTH): Define.
+       (ASM_IDENTIFY_GCC): Define.
+       (ASM_IDENTIFY_GCC_AFTER_SOURCE): Define.
+       (ASM_OUTPUT_SOURCE_LINE): Define.
+       (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Define.
+
 Fri Mar 26 01:59:15 1999  "Charles M. Hannum" <root@ihack.net>
 
        * fold-const.c (fold_truthop): Verify that the lhs and rhs are
diff --git a/gcc/config/dbxelf.h b/gcc/config/dbxelf.h
new file mode 100644 (file)
index 0000000..9472887
--- /dev/null
@@ -0,0 +1,105 @@
+/* Definitions needed when using stabs embedded in ELF sections.
+   Copyright (C) 1999 Free Software Foundation, Inc.
+
+This file is part of GNU CC.
+
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING.  If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+/* This file may be included by any ELF target which wishes to
+   support -gstabs generating stabs in sections, as produced by gas
+   and understood by gdb.  */
+
+#ifndef __DBX_ELF_H
+#define __DBX_ELF_H
+
+/* Output DBX (stabs) debugging information if doing -gstabs.  */
+
+#undef  DBX_DEBUGGING_INFO
+#define DBX_DEBUGGING_INFO
+
+/* Make LBRAC and RBRAC addresses relative to the start of the
+   function.  The native Solaris stabs debugging format works this
+   way, gdb expects it, and it reduces the number of relocation
+   entries...  */
+
+#undef  DBX_BLOCKS_FUNCTION_RELATIVE
+#define DBX_BLOCKS_FUNCTION_RELATIVE 1
+
+/* ... but, to make this work, functions must appear prior to line info.  */
+
+#undef  DBX_FUNCTION_FIRST
+#define DBX_FUNCTION_FIRST
+
+/* When generating stabs debugging, use N_BINCL entries.  */
+
+#undef  DBX_USE_BINCL
+#define DBX_USE_BINCL
+
+/* There is no limit to the length of stabs strings.  */
+
+#ifndef DBX_CONTIN_LENGTH
+#define DBX_CONTIN_LENGTH 0
+#endif
+
+/* When using stabs, gcc2_compiled must be a stabs entry, not an
+   ordinary symbol, or gdb won't see it.  Furthermore, since gdb reads
+   the input piecemeal, starting with each N_SO, it's a lot easier if
+   the gcc2 flag symbol is *after* the N_SO rather than before it.  So
+   we emit an N_OPT stab there.  */
+
+#define ASM_IDENTIFY_GCC(FILE)                                         \
+do                                                                     \
+  {                                                                    \
+    if (write_symbols != DBX_DEBUG)                                    \
+      fputs ("gcc2_compiled.:\n", FILE);                               \
+  }                                                                    \
+while (0)
+
+#define ASM_IDENTIFY_GCC_AFTER_SOURCE(FILE)                            \
+do                                                                     \
+  {                                                                    \
+    if (write_symbols == DBX_DEBUG)                                    \
+      fputs ("\t.stabs\t\"gcc2_compiled.\", 0x3c, 0, 0, 0\n", FILE);   \
+  }                                                                    \
+while (0)
+
+/* Like block addresses, stabs line numbers are relative to the
+   current function.  */
+
+#undef  ASM_OUTPUT_SOURCE_LINE
+#define ASM_OUTPUT_SOURCE_LINE(file, line)                             \
+do                                                                     \
+  {                                                                    \
+    static int sym_lineno = 1;                                         \
+    fprintf (file, ".stabn 68,0,%d,.LM%d-",                            \
+            line, sym_lineno);                                         \
+    assemble_name (file,                                               \
+                  XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0));\
+    fprintf (file, "\n.LM%d:\n", sym_lineno);                          \
+    sym_lineno += 1;                                                   \
+  }                                                                    \
+while (0)
+
+/* Generate a blank trailing N_SO to mark the end of the .o file, since
+   we can't depend upon the linker to mark .o file boundaries with
+   embedded stabs.  */
+
+#undef  DBX_OUTPUT_MAIN_SOURCE_FILE_END
+#define DBX_OUTPUT_MAIN_SOURCE_FILE_END(FILE, FILENAME)                        \
+  fprintf (FILE,                                                       \
+          "\t.text\n\t.stabs \"\",%d,0,0,Letext\nLetext:\n", N_SO)
+
+#endif /* __DBX_ELF_H */
index e06ff6970c971484cfde68753c596a140748f829..6c107311fd75d5d75664c78c9e5968702008d37d 100644 (file)
@@ -75,10 +75,9 @@ do {                                                         \
 
 #define DWARF2_DEBUGGING_INFO
 
-/* gas on SVR4 supports the use of .stabs.  Permit -gstabs to be used
-   in general, although it will only work when using gas.  */
+/* Also allow them to support STABS debugging.  */
 
-#define DBX_DEBUGGING_INFO
+#include "dbxelf.h"
 
 /* The GNU tools operate better with stabs.  Since we don't have
    any native tools to be compatible with, default to stabs.  */
@@ -87,56 +86,6 @@ do {                                                         \
 #define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
 #endif
 
-/* Make LBRAC and RBRAC addresses relative to the start of the
-   function.  The native Solaris stabs debugging format works this
-   way, gdb expects it, and it reduces the number of relocation
-   entries.  */
-
-#define DBX_BLOCKS_FUNCTION_RELATIVE 1
-
-/* When using stabs, gcc2_compiled must be a stabs entry, not an
-   ordinary symbol, or gdb won't see it.  Furthermore, since gdb reads
-   the input piecemeal, starting with each N_SO, it's a lot easier if
-   the gcc2 flag symbol is *after* the N_SO rather than before it.  So
-   we emit an N_OPT stab there.  */
-
-#define ASM_IDENTIFY_GCC(FILE)                                         \
-do                                                                     \
-  {                                                                    \
-    if (write_symbols != DBX_DEBUG)                                    \
-      fputs ("gcc2_compiled.:\n", FILE);                               \
-  }                                                                    \
-while (0)
-
-#define ASM_IDENTIFY_GCC_AFTER_SOURCE(FILE)                            \
-do                                                                     \
-  {                                                                    \
-    if (write_symbols == DBX_DEBUG)                                    \
-      fputs ("\t.stabs\t\"gcc2_compiled.\", 0x3c, 0, 0, 0\n", FILE);   \
-  }                                                                    \
-while (0)
-
-/* Like block addresses, stabs line numbers are relative to the
-   current function.  */
-
-#undef  ASM_OUTPUT_SOURCE_LINE
-#define ASM_OUTPUT_SOURCE_LINE(file, line)                             \
-do                                                                     \
-  {                                                                    \
-    static int sym_lineno = 1;                                         \
-    fprintf (file, "\t.stabn 68,0,%d,.LM%d-",                          \
-            line, sym_lineno);                                         \
-    assemble_name (file, XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0)); \
-    fprintf (file, "\n.LM%d:\n", sym_lineno);                          \
-    sym_lineno += 1;                                                   \
-  }                                                                    \
-while (0)
-
-/* In order for relative line numbers to work, we must output the
-   stabs entry for the function name first.  */
-
-#define DBX_FUNCTION_FIRST
-
 #undef ASM_BYTE_OP
 #define ASM_BYTE_OP    ".byte"
 
index d0362e2662e1b2c97530c139942d808afecfa801..1c8482fd11d68fcf8e9de04fc8e3e61a634ddcbb 100644 (file)
@@ -261,83 +261,14 @@ do {                                                              \
 
 #undef DBX_REGISTER_NUMBER
 
-/* gas on SVR4 supports the use of .stabs.  Permit -gstabs to be used
-   in general, although it will only work when using gas.  */
-
-#define DBX_DEBUGGING_INFO
-
-/* When generating stabs debugging, use N_BINCL entries.  */
-
-#define DBX_USE_BINCL
-
 /* Use DWARF debugging info by default.  */
 
 #ifndef PREFERRED_DEBUGGING_TYPE
 #define PREFERRED_DEBUGGING_TYPE DWARF_DEBUG
 #endif
 
-/* Make LBRAC and RBRAC addresses relative to the start of the
-   function.  The native Solaris stabs debugging format works this
-   way, gdb expects it, and it reduces the number of relocation
-   entries.  */
-
-#define DBX_BLOCKS_FUNCTION_RELATIVE 1
-
-/* When using stabs, gcc2_compiled must be a stabs entry, not an
-   ordinary symbol, or gdb won't see it.  Furthermore, since gdb reads
-   the input piecemeal, starting with each N_SO, it's a lot easier if
-   the gcc2 flag symbol is *after* the N_SO rather than before it.  So
-   we emit an N_OPT stab there.  */
-
-#define ASM_IDENTIFY_GCC(FILE)                                         \
-do                                                                     \
-  {                                                                    \
-    if (write_symbols != DBX_DEBUG)                                    \
-      fputs ("gcc2_compiled.:\n", FILE);                               \
-  }                                                                    \
-while (0)
-
-#define ASM_IDENTIFY_GCC_AFTER_SOURCE(FILE)                            \
-do                                                                     \
-  {                                                                    \
-    if (write_symbols == DBX_DEBUG)                                    \
-      fputs ("\t.stabs\t\"gcc2_compiled.\", 0x3c, 0, 0, 0\n", FILE);   \
-  }                                                                    \
-while (0)
-
-/* Like block addresses, stabs line numbers are relative to the
-   current function.  */
-
-#define ASM_OUTPUT_SOURCE_LINE(file, line)                             \
-do                                                                     \
-  {                                                                    \
-    static int sym_lineno = 1;                                         \
-    fprintf (file, ".stabn 68,0,%d,.LM%d-",                            \
-            line, sym_lineno);                                         \
-    assemble_name (file,                                               \
-                  XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0));\
-    fprintf (file, "\n.LM%d:\n", sym_lineno);                          \
-    sym_lineno += 1;                                                   \
-  }                                                                    \
-while (0)
-
-/* In order for relative line numbers to work, we must output the
-   stabs entry for the function name first.  */
-
-#define DBX_FUNCTION_FIRST
-
-/* Generate a blank trailing N_SO to mark the end of the .o file, since
-   we can't depend upon the linker to mark .o file boundaries with
-   embedded stabs.  */
-
-#define DBX_OUTPUT_MAIN_SOURCE_FILE_END(FILE, FILENAME)                        \
-do                                                                     \
-  {                                                                    \
-    text_section ();                                                   \
-    fprintf (FILE,                                                     \
-          "\t.stabs \"\",%d,0,0,.Letext\n.Letext:\n", N_SO);           \
-  }                                                                    \
-while (0)
+/* But allow STABS to be supoorted as well.  */
+#include "dbxelf.h"
 
 /* Define the actual types of some ANSI-mandated types.  (These
    definitions should work for most SVR4 systems).  */