From: Ian Lance Taylor Date: Mon, 5 Aug 1996 20:45:55 +0000 (+0000) Subject: * elf.c (_bfd_elf_make_section_from_shdr): For a loadable section, X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b944e7e855f74a833fb8ae9f60e4e13a0947ab73;p=binutils-gdb.git * elf.c (_bfd_elf_make_section_from_shdr): For a loadable section, only get the LMA from the phdr if they are in the same part of the file. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index c3a057811de..41a2e953c52 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,9 @@ Mon Aug 5 13:42:41 1996 Ian Lance Taylor + * elf.c (_bfd_elf_make_section_from_shdr): For a loadable section, + only get the LMA from the phdr if they are in the same part of the + file. + * elf.c (map_sections_to_segments): Rewrite tests for starting a new segment to make them more comprehensible. If the relationship between the LMA and the VMA changed, start a new segment. Don't diff --git a/bfd/elf.c b/bfd/elf.c index 7eb5540fcf5..49789578333 100644 --- a/bfd/elf.c +++ b/bfd/elf.c @@ -228,7 +228,11 @@ _bfd_elf_make_section_from_shdr (abfd, hdr, name) && phdr->p_paddr != 0 && phdr->p_vaddr != phdr->p_paddr && phdr->p_vaddr <= hdr->sh_addr - && phdr->p_vaddr + phdr->p_memsz >= hdr->sh_addr + hdr->sh_size) + && phdr->p_vaddr + phdr->p_memsz >= hdr->sh_addr + hdr->sh_size + && ((flags & SEC_LOAD) == 0 + || (phdr->p_offset <= hdr->sh_offset + && (phdr->p_offset + phdr->p_filesz + >= hdr->sh_offset + hdr->sh_size)))) { newsect->lma += phdr->p_paddr - phdr->p_vaddr; break;