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.
This commit is contained in:
H.J. Lu 2005-08-17 14:28:01 +00:00
parent dec20c9e4d
commit bc79cded48
4 changed files with 33 additions and 12 deletions

View file

@ -1,3 +1,10 @@
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

View file

@ -2183,9 +2183,9 @@ _bfd_dwarf2_find_nearest_line (bfd *abfd,
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;
@ -2392,9 +2392,9 @@ _bfd_dwarf2_find_line (bfd *abfd,
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;

View file

@ -1,3 +1,12 @@
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.

View file

@ -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),