* 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

@ -1,3 +1,9 @@
2007-03-08 Alan Modra <amodra@bigpond.net.au>
* 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.
2007-03-07 Joseph Myers <joseph@codesourcery.com>
* configure.in (REPORT_BUGS_TEXI): Define to Texinfo version of
@ -176,7 +182,7 @@
* pe-dll.c: (make_one) Conditionally include jump stubs.
* emultempl/pe.em (gld_${EMULATION_NAME}_after_open): Identify
redundant jump stubs from import libraries and exclude them from
redundant jump stubs from import libraries and exclude them from
link.
2007-01-19 H.J. Lu <hongjiu.lu@intel.com>
@ -189,7 +195,7 @@
symbolic_unset and command_line.dynamic_list to
dynamic_list_unset. Check -Bsymbolic, -Bsymbolic-functions and
--dynamic-list* before setting link_info.symbolic,
link_info.dynamic and link_info.dynamic_data.
link_info.dynamic and link_info.dynamic_data.
* lexsup.c (option_values): Add OPTION_SYMBOLIC_FUNCTIONS.
(ld_options): Use OPTION_SYMBOLIC_FUNCTIONS with

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
{