diff options
author | Richard Henderson <rth@redhat.com> | 2000-11-29 21:42:41 +0000 |
---|---|---|
committer | Richard Henderson <rth@redhat.com> | 2000-11-29 21:42:41 +0000 |
commit | 220e750f6ff8264ad573f43c0883ece78f53642f (patch) | |
tree | 15bd4b7605aaf794ca598ba141fa1164b044c763 /gas/write.c | |
parent | b13291a97978585d2167e4bb047493c34f3df5ca (diff) | |
download | gdb-220e750f6ff8264ad573f43c0883ece78f53642f.zip gdb-220e750f6ff8264ad573f43c0883ece78f53642f.tar.gz gdb-220e750f6ff8264ad573f43c0883ece78f53642f.tar.bz2 |
* dwarf2dbg.c: Rewrite from scratch. Queue all debugging output
until dwarf2_finish; use relaxation to get cross-fragment offsets;
thread multiple subsegments properly; handle multiple code
sections properly; emit proper compilation unit info for assembler
generated debugging.
* as.h (enum _relax_state): Add rs_dwarf2dbg.
* dwarf2dbg.h (struct dwarf2_line_info): Remove filename.
(dwarf2dbg_estimate_size_before_relax): Declare.
(dwarf2dbg_relax_frag, dwarf2dbg_convert_frag): Declare.
* write.c: Include dwarf2dbg.h.
(cvt_frag_to_fill): Handle rs_dwarf2dbg.
(relax_segment): Likewise.
Diffstat (limited to 'gas/write.c')
-rw-r--r-- | gas/write.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gas/write.c b/gas/write.c index f30e0d0..4599338 100644 --- a/gas/write.c +++ b/gas/write.c @@ -25,6 +25,7 @@ #include "subsegs.h" #include "obstack.h" #include "output-file.h" +#include "dwarf2dbg.h" /* This looks like a good idea. Let's try turning it on always, for now. */ #undef BFD_FAST_SECTION_FILL @@ -534,6 +535,10 @@ cvt_frag_to_fill (headersP, sec, fragP) eh_frame_convert_frag (fragP); break; + case rs_dwarf2dbg: + dwarf2dbg_convert_frag (fragP); + break; + case rs_machine_dependent: #ifdef BFD_ASSEMBLER md_convert_frag (stdoutput, sec, fragP); @@ -2193,6 +2198,10 @@ relax_segment (segment_frag_root, segment) address += eh_frame_estimate_size_before_relax (fragP); break; + case rs_dwarf2dbg: + address += dwarf2dbg_estimate_size_before_relax (fragP); + break; + default: BAD_CASE (fragP->fr_type); break; @@ -2409,6 +2418,10 @@ relax_segment (segment_frag_root, segment) growth = eh_frame_relax_frag (fragP); break; + case rs_dwarf2dbg: + growth = dwarf2dbg_relax_frag (fragP); + break; + default: BAD_CASE (fragP->fr_type); break; |