2010-02-05 Sterling Augustine <sterling@tensilica.com>

* elf.c (assign_file_positions_for_load_sections) Update lma of
	section	if necessary.
This commit is contained in:
Sterling Augustine 2010-02-05 17:08:47 +00:00
parent 2ad0ff16f7
commit 1cfb7d1ee1

View file

@ -4462,6 +4462,22 @@ assign_file_positions_for_load_sections (bfd *abfd,
}
p->p_memsz += adjust;
if (p->p_paddr + p->p_memsz != sec->lma)
{
/* This behavior is a compromise--ld has long
silently changed the lma of sections when
lma - vma is not equal for every section in a
pheader--but only in the internal elf structures.
Silently changing the lma is probably a bug, but
changing it would have subtle and unknown
consequences for existing scripts.
Instead modify the bfd data structure to reflect
what happened. This at least fixes the values
for the lma in the mapfile. */
sec->lma = p->p_paddr + p->p_memsz;
}
if (this_hdr->sh_type != SHT_NOBITS)
{
if (p->p_filesz + adjust < p->p_memsz)