* 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:
parent
d22ec3b090
commit
b944e7e855
@ -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
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user