* elf.c (assign_file_positions_for_segments): Don't increment file

offset for a segment which contains no loadable sections.
This commit is contained in:
Ian Lance Taylor 1996-01-16 20:53:04 +00:00
parent a411bea023
commit d49ddb8575
2 changed files with 19 additions and 9 deletions

View File

@ -1,3 +1,8 @@
Tue Jan 16 15:10:49 1996 Ian Lance Taylor <ian@cygnus.com>
* elf.c (assign_file_positions_for_segments): Don't increment file
offset for a segment which contains no loadable sections.
Mon Jan 15 17:46:27 1996 Michael Meissner <meissner@tiktok.cygnus.com>
* reloc.c: Add new PowerPC relocations.

View File

@ -1911,7 +1911,9 @@ assign_file_positions_for_segments (abfd)
else
p->p_flags = 0;
if (p->p_type == PT_LOAD && m->count > 0)
if (p->p_type == PT_LOAD
&& m->count > 0
&& (m->sections[0]->flags & SEC_LOAD) != 0)
off += (m->sections[0]->vma - off) % bed->maxpagesize;
if (m->count == 0)
@ -2019,15 +2021,18 @@ assign_file_positions_for_segments (abfd)
/* The section VMA must equal the file position modulo
the page size. */
adjust = (sec->vma - off) % bed->maxpagesize;
if (adjust != 0)
if ((flags & SEC_LOAD) != 0)
{
if (i == 0)
abort ();
p->p_memsz += adjust;
if ((flags & SEC_LOAD) != 0)
p->p_filesz += adjust;
off += adjust;
adjust = (sec->vma - off) % bed->maxpagesize;
if (adjust != 0)
{
if (i == 0)
abort ();
p->p_memsz += adjust;
if ((flags & SEC_LOAD) != 0)
p->p_filesz += adjust;
off += adjust;
}
}
sec->filepos = off;