2010-06-11 Tristan Gingold <gingold@adacore.com>

* vms-alpha.c (_bfd_vms_slurp_egsd): Always set vma of absolute
	sections to 0.
This commit is contained in:
Tristan Gingold 2010-06-11 15:30:38 +00:00
parent ff150b92be
commit f654f403d3
2 changed files with 17 additions and 6 deletions

View file

@ -1,3 +1,8 @@
2010-06-11 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c (_bfd_vms_slurp_egsd): Always set vma of absolute
sections to 0.
2010-06-11 Tristan Gingold <gingold@adacore.com> 2010-06-11 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c (evax_bfd_print_etir): Handle ETIR__C_STO_GBL_LW. * vms-alpha.c (evax_bfd_print_etir): Handle ETIR__C_STO_GBL_LW.

View file

@ -1154,12 +1154,18 @@ _bfd_vms_slurp_egsd (bfd *abfd)
if (!bfd_set_section_flags (abfd, section, new_flags)) if (!bfd_set_section_flags (abfd, section, new_flags))
return FALSE; return FALSE;
section->alignment_power = egps->align; section->alignment_power = egps->align;
align_addr = (1 << section->alignment_power); if ((old_flags & EGPS__V_REL) != 0)
if ((base_addr % align_addr) != 0) {
base_addr += (align_addr - (base_addr % align_addr)); /* Give a non-overlapping vma to non absolute sections. */
section->vma = (bfd_vma)base_addr; align_addr = (1 << section->alignment_power);
base_addr += section->size; if ((base_addr % align_addr) != 0)
section->filepos = (unsigned int)-1; base_addr += (align_addr - (base_addr % align_addr));
section->vma = (bfd_vma)base_addr;
base_addr += section->size;
}
else
section->vma = 0;
section->filepos = 0;
/* Append it to the section array. */ /* Append it to the section array. */
if (PRIV (section_count) >= PRIV (section_max)) if (PRIV (section_count) >= PRIV (section_max))