+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.
+
2005-08-17 Alan Modra <amodra@bigpond.net.au>
* elf64-mmix.c (mmix_elf_add_symbol_hook): Mark reg section
stash = *pinfo;
addr = offset;
if (section->output_section)
- addr += section->output_section->vma + section->output_offset;
+ addr += section->output_section->lma + section->output_offset;
else
- addr += section->vma;
+ addr += section->lma;
*filename_ptr = NULL;
*functionname_ptr = NULL;
*linenumber_ptr = 0;
addr = symbol->value;
if (section->output_section)
- addr += section->output_section->vma + section->output_offset;
+ addr += section->output_section->lma + section->output_offset;
else
- addr += section->vma;
+ addr += section->lma;
*filename_ptr = NULL;
stash = *pinfo;
+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.
+
2005-08-16 H.J. Lu <hongjiu.lu@intel.com>
* bucomm.h (stpcpy): Declare if HAVE_DECL_STPCPY isn't defined.
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)
{
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. */
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),