diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2005-08-17 14:28:01 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2005-08-17 14:28:01 +0000 |
commit | bc79cded48d30c9812501976924d9076885478b1 (patch) | |
tree | 2f64bb6f3ffd5f23781b29f46978d2f95cd13c47 /binutils/objdump.c | |
parent | dec20c9e4de7d566680b40aa18ff3004d974020b (diff) | |
download | gdb-bc79cded48d30c9812501976924d9076885478b1.zip gdb-bc79cded48d30c9812501976924d9076885478b1.tar.gz gdb-bc79cded48d30c9812501976924d9076885478b1.tar.bz2 |
bfd/
2005-08-17 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/1179
* dwarf2.c (_bfd_dwarf2_find_nearest_line): Use section lma
instead of vma.
(_bfd_dwarf2_find_line): Likewise.
binutils/
2005-08-17 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/1179
* objdump.c (disassemble_bytes): Don't adjust
adjust_section_vma.
(adjust_addresses): Don't adjust vma for debugging section.
Adjust lma only for relocatable files.
(dump_bfd): Tell adjust_addresses if it is a relocatable file.
Diffstat (limited to 'binutils/objdump.c')
-rw-r--r-- | binutils/objdump.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/binutils/objdump.c b/binutils/objdump.c index f8e7cd9..14c9cb6 100644 --- a/binutils/objdump.c +++ b/binutils/objdump.c @@ -1354,10 +1354,7 @@ disassemble_bytes (struct disassemble_info * info, done_dot = FALSE; if (with_line_numbers || with_source_code) - /* The line number tables will refer to unadjusted - section VMAs, so we must undo any VMA modifications - when calling show_line. */ - show_line (aux->abfd, section, addr_offset - adjust_section_vma); + show_line (aux->abfd, section, addr_offset); if (! prefix_addresses) { @@ -2600,10 +2597,15 @@ add_include_path (const char *path) static void adjust_addresses (bfd *abfd ATTRIBUTE_UNUSED, asection *section, - void *dummy ATTRIBUTE_UNUSED) + void *arg) { - section->vma += adjust_section_vma; - section->lma += adjust_section_vma; + if ((section->flags & SEC_DEBUGGING) == 0) + { + bfd_boolean *has_reloc_p = (bfd_boolean *) arg; + section->vma += adjust_section_vma; + if (*has_reloc_p) + section->lma += adjust_section_vma; + } } /* Dump selected contents of ABFD. */ @@ -2615,7 +2617,10 @@ dump_bfd (bfd *abfd) the BFD information is a hack. However, we must do it, or bfd_find_nearest_line will not do the right thing. */ if (adjust_section_vma != 0) - bfd_map_over_sections (abfd, adjust_addresses, NULL); + { + bfd_boolean has_reloc = (abfd->flags & HAS_RELOC); + bfd_map_over_sections (abfd, adjust_addresses, &has_reloc); + } if (! dump_debugging_tags) printf (_("\n%s: file format %s\n"), bfd_get_filename (abfd), |