From bd22b4ed2cf6a5b4e93e9b0c783629e66a23506c Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Fri, 11 Jun 2010 15:30:38 +0000 Subject: 2010-06-11 Tristan Gingold * vms-alpha.c (_bfd_vms_slurp_egsd): Always set vma of absolute sections to 0. --- bfd/vms-alpha.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'bfd/vms-alpha.c') diff --git a/bfd/vms-alpha.c b/bfd/vms-alpha.c index 6591f3f89f..ff3062a184 100644 --- a/bfd/vms-alpha.c +++ b/bfd/vms-alpha.c @@ -1154,12 +1154,18 @@ _bfd_vms_slurp_egsd (bfd *abfd) if (!bfd_set_section_flags (abfd, section, new_flags)) return FALSE; section->alignment_power = egps->align; - align_addr = (1 << section->alignment_power); - if ((base_addr % align_addr) != 0) - base_addr += (align_addr - (base_addr % align_addr)); - section->vma = (bfd_vma)base_addr; - base_addr += section->size; - section->filepos = (unsigned int)-1; + if ((old_flags & EGPS__V_REL) != 0) + { + /* Give a non-overlapping vma to non absolute sections. */ + align_addr = (1 << section->alignment_power); + if ((base_addr % align_addr) != 0) + 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. */ if (PRIV (section_count) >= PRIV (section_max)) -- cgit v1.2.1