diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2002-12-25 21:20:31 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@redhat.com> | 2002-12-25 21:20:31 +0000 |
commit | 9605f328cd91016a1f55928b8b67419eb050e771 (patch) | |
tree | ed558c78614b16d0a9211bba60a86514bc84d058 | |
parent | c4e54c2a3ceaad2a0f5550ff2d28f2be1dbfbaa1 (diff) | |
download | gdb-9605f328cd91016a1f55928b8b67419eb050e771.zip gdb-9605f328cd91016a1f55928b8b67419eb050e771.tar.gz gdb-9605f328cd91016a1f55928b8b67419eb050e771.tar.bz2 |
* 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.
-rw-r--r-- | gas/ChangeLog | 7 | ||||
-rw-r--r-- | gas/config/tc-mips.h | 3 | ||||
-rw-r--r-- | gas/doc/internals.texi | 6 | ||||
-rw-r--r-- | 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 <aoliva@redhat.com> + + * 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 <dj@redhat.com> * 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); |