From 9605f328cd91016a1f55928b8b67419eb050e771 Mon Sep 17 00:00:00 2001 From: Alexandre Oliva Date: Wed, 25 Dec 2002 21:20:31 +0000 Subject: [PATCH] * dwarf2dbg.c (DWARF2_ADDR_SIZE): New macro. (dwarf2_finish): Use it. * doc/internals.texi (DWARF2_ADDR_SIZE): Document it. * config/tc-mips.h (DWARF2_ADDR_SIZE): Override. --- gas/ChangeLog | 7 +++++++ gas/config/tc-mips.h | 3 +++ gas/doc/internals.texi | 6 ++++++ gas/dwarf2dbg.c | 9 +++++++-- 4 files changed, 23 insertions(+), 2 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index fbe346c..927d2fe 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,10 @@ +2002-12-25 Alexandre Oliva + + * dwarf2dbg.c (DWARF2_ADDR_SIZE): New macro. + (dwarf2_finish): Use it. + * doc/internals.texi (DWARF2_ADDR_SIZE): Document it. + * config/tc-mips.h (DWARF2_ADDR_SIZE): Override. + 2002-12-20 DJ Delorie * config/tc-xstormy16.c (md_cgen_lookup_reloc): Support diff --git a/gas/config/tc-mips.h b/gas/config/tc-mips.h index dd52a7f..a19c87d 100644 --- a/gas/config/tc-mips.h +++ b/gas/config/tc-mips.h @@ -185,4 +185,7 @@ extern void mips_enable_auto_align PARAMS ((void)); extern enum dwarf2_format mips_dwarf2_format PARAMS ((void)); #define DWARF2_FORMAT() mips_dwarf2_format () +#define DWARF2_ADDR_SIZE(bfd) \ + (DWARF2_FORMAT () == dwarf2_format_32bit ? 4 : 8) + #endif /* TC_MIPS */ diff --git a/gas/doc/internals.texi b/gas/doc/internals.texi index 0d54d4f..f88e6b2 100644 --- a/gas/doc/internals.texi +++ b/gas/doc/internals.texi @@ -1503,6 +1503,12 @@ This define only affects @code{.debug_info} and @code{.debug_line} sections generated by the assembler. DWARF 2 sections generated by other tools will be unaffected by this setting. +@item DWARF2_ADDR_SIZE (@var{bfd}) +@cindex DWARF2_ADDR_SIZE +It should return the size of an address, as it should be represented in +debugging info. If you don't define this macro, the default definition uses +the number of bits per address, as defined in @var{bfd}, divided by 8. + @end table @node Object format backend diff --git a/gas/dwarf2dbg.c b/gas/dwarf2dbg.c index 0d5c072..db6e0f0 100644 --- a/gas/dwarf2dbg.c +++ b/gas/dwarf2dbg.c @@ -44,9 +44,14 @@ #include "dwarf2dbg.h" #ifndef DWARF2_FORMAT -#define DWARF2_FORMAT() dwarf2_format_32bit +# define DWARF2_FORMAT() dwarf2_format_32bit #endif +#ifndef DWARF2_ADDR_SIZE +# define DWARF2_ADDR_SIZE(bfd) (bfd_arch_bits_per_address (bfd) / 8); +#endif + + #ifdef BFD_ASSEMBLER #include "subsegs.h" @@ -1341,7 +1346,7 @@ dwarf2_finish () return; /* Calculate the size of an address for the target machine. */ - sizeof_address = bfd_arch_bits_per_address (stdoutput) / 8; + sizeof_address = DWARF2_ADDR_SIZE (stdoutput); /* Create and switch to the line number section. */ line_seg = subseg_new (".debug_line", 0); -- 2.7.4