* 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.
This commit is contained in:
Ian Lance Taylor 1996-08-05 20:45:55 +00:00
parent d22ec3b090
commit b944e7e855
2 changed files with 9 additions and 1 deletions

View File

@ -1,5 +1,9 @@
Mon Aug 5 13:42:41 1996 Ian Lance Taylor <ian@cygnus.com>
* 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

View File

@ -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;