* ldlang.c (lang_size_sections_1): Correct backwards dot move

test to not trigger on overlays.  Only warn on backwards move
	if non-default lma.
This commit is contained in:
Alan Modra
2007-03-08 04:38:45 +00:00
parent cb9f45d79f
commit 91eb6c46de
2 changed files with 17 additions and 9 deletions

View File

@ -4411,19 +4411,21 @@ lang_size_sections_1
/* A backwards move of dot should be accompanied by
an explicit assignment to the section LMA (ie.
os->load_base set) because backwards moves normally
os->load_base set) because backwards moves can
create overlapping LMAs. */
if (dot < last->vma
&& os->bfd_section->size != 0)
&& os->bfd_section->size != 0
&& dot + os->bfd_section->size <= last->vma)
{
einfo (_("%P: warning: dot moved backwards before `%s'\n"),
os->name);
/* If dot moved backwards then leave lma equal to
vma. This is the old default lma, which might
just happen to work when the backwards move is
sufficiently large. Nag anyway, so people fix
their linker scripts. */
sufficiently large. Nag if this changes anything,
so people can fix their linker scripts. */
if (last->vma != last->lma)
einfo (_("%P: warning: dot moved backwards before `%s'\n"),
os->name);
}
else
{