aboutsummaryrefslogtreecommitdiff
path: root/binutils/objdump.c
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2005-08-17 14:28:01 +0000
committerH.J. Lu <hjl.tools@gmail.com>2005-08-17 14:28:01 +0000
commitbc79cded48d30c9812501976924d9076885478b1 (patch)
tree2f64bb6f3ffd5f23781b29f46978d2f95cd13c47 /binutils/objdump.c
parentdec20c9e4de7d566680b40aa18ff3004d974020b (diff)
downloadgdb-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.c21
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),