summaryrefslogtreecommitdiffstats
path: root/contrib
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1998-03-08 11:54:04 +0000
committerpeter <peter@FreeBSD.org>1998-03-08 11:54:04 +0000
commit89f7f39c2ed3872e239597fa89698b5a81f29c28 (patch)
tree5c082246071c4c5477d279c3b1639025fe6bbf41 /contrib
parent10c5ccc30ae8155c4d8bd25aeffd9ed0e476c387 (diff)
downloadFreeBSD-src-89f7f39c2ed3872e239597fa89698b5a81f29c28.zip
FreeBSD-src-89f7f39c2ed3872e239597fa89698b5a81f29c28.tar.gz
Put the function stabs in traditional order on a.out, or gdb doesn't see
function local variables.
Diffstat (limited to 'contrib')
-rw-r--r--contrib/gcc/config/i386/freebsd.h12
-rw-r--r--contrib/gcc/config/i386/freebsd.h.fixed12
-rw-r--r--contrib/gcc/dbxout.c10
3 files changed, 22 insertions, 12 deletions
diff --git a/contrib/gcc/config/i386/freebsd.h b/contrib/gcc/config/i386/freebsd.h
index f3503fc..398d1b8 100644
--- a/contrib/gcc/config/i386/freebsd.h
+++ b/contrib/gcc/config/i386/freebsd.h
@@ -119,6 +119,9 @@ Boston, MA 02111-1307, USA. */
fprintf (FILE, "\t.version\t\"01.01\"\n"); \
} while (0)
+/* don't override the defauts, in case gdb gets upset */
+#undef ASM_IDENTIFY_GCC
+
/* This is how to store into the string BUF
the symbol_ref name of an internal numbered label where
PREFIX is the class of label and NUM is the number within the class.
@@ -164,12 +167,6 @@ Boston, MA 02111-1307, USA. */
fprintf ((FILE), "\t.p2align %d,0x90\n", i386_align_loops)
-/* A C statement to output assembler commands which will identify the object
- file as having been compile with GNU CC. We don't need or want this for
- GDB. */
-#undef ASM_IDENTIFY_GCC
-#define ASM_IDENTIFY_GCC(FILE)
-
/* conditionalize the use of ".section rodata" on elf mode - otherwise .text */
#undef USE_CONST_SECTION
#define USE_CONST_SECTION TARGET_ELF
@@ -283,6 +280,9 @@ do { \
} \
} while (0)
+#undef DBX_FUNCTION_FIRST
+#define DBX_CHECK_FUNCTION_FIRST TARGET_ELF
+
/* stabs-in-elf has offsets relative to function beginning */
#undef DBX_OUTPUT_LBRAC
#define DBX_OUTPUT_LBRAC(file,name) \
diff --git a/contrib/gcc/config/i386/freebsd.h.fixed b/contrib/gcc/config/i386/freebsd.h.fixed
index f3503fc..398d1b8 100644
--- a/contrib/gcc/config/i386/freebsd.h.fixed
+++ b/contrib/gcc/config/i386/freebsd.h.fixed
@@ -119,6 +119,9 @@ Boston, MA 02111-1307, USA. */
fprintf (FILE, "\t.version\t\"01.01\"\n"); \
} while (0)
+/* don't override the defauts, in case gdb gets upset */
+#undef ASM_IDENTIFY_GCC
+
/* This is how to store into the string BUF
the symbol_ref name of an internal numbered label where
PREFIX is the class of label and NUM is the number within the class.
@@ -164,12 +167,6 @@ Boston, MA 02111-1307, USA. */
fprintf ((FILE), "\t.p2align %d,0x90\n", i386_align_loops)
-/* A C statement to output assembler commands which will identify the object
- file as having been compile with GNU CC. We don't need or want this for
- GDB. */
-#undef ASM_IDENTIFY_GCC
-#define ASM_IDENTIFY_GCC(FILE)
-
/* conditionalize the use of ".section rodata" on elf mode - otherwise .text */
#undef USE_CONST_SECTION
#define USE_CONST_SECTION TARGET_ELF
@@ -283,6 +280,9 @@ do { \
} \
} while (0)
+#undef DBX_FUNCTION_FIRST
+#define DBX_CHECK_FUNCTION_FIRST TARGET_ELF
+
/* stabs-in-elf has offsets relative to function beginning */
#undef DBX_OUTPUT_LBRAC
#define DBX_OUTPUT_LBRAC(file,name) \
diff --git a/contrib/gcc/dbxout.c b/contrib/gcc/dbxout.c
index e322614..605e2da 100644
--- a/contrib/gcc/dbxout.c
+++ b/contrib/gcc/dbxout.c
@@ -2494,6 +2494,11 @@ dbxout_begin_function (decl)
{
#ifdef DBX_FUNCTION_FIRST
dbxout_really_begin_function (decl);
+#else
+#ifdef DBX_CHECK_FUNCTION_FIRST
+ if (DBX_CHECK_FUNCTION_FIRST)
+ dbxout_really_begin_function (decl);
+#endif
#endif
}
@@ -2509,6 +2514,11 @@ dbxout_function (decl)
{
#ifndef DBX_FUNCTION_FIRST
dbxout_really_begin_function (decl);
+#else
+#ifdef DBX_CHECK_FUNCTION_FIRST
+ if (!(DBX_CHECK_FUNCTION_FIRST))
+ dbxout_really_begin_function (decl);
+#endif
#endif
dbxout_block (DECL_INITIAL (decl), 0, DECL_ARGUMENTS (decl));
#ifdef DBX_OUTPUT_FUNCTION_END
OpenPOWER on IntegriCloud