Move stabs specific target macros out od svr4.h and elfos.h and into dbxelf.h
From-SVN: r25995
This commit is contained in:
parent
d8e178a02b
commit
cedcf9372a
@ -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
|
||||
|
105
gcc/config/dbxelf.h
Normal file
105
gcc/config/dbxelf.h
Normal file
@ -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 */
|
@ -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"
|
||||
|
||||
|
@ -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). */
|
||||
|
Loading…
Reference in New Issue
Block a user