diff options
author | Alan Modra <amodra@gmail.com> | 2007-03-08 04:38:45 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2007-03-08 04:38:45 +0000 |
commit | 91eb6c46deee80bf5993d1316f13afe85cf0455f (patch) | |
tree | e4812029f104155cabfb63a1c2ac7f342a2c1bfc /ld | |
parent | cb9f45d79f855f7e1d0b15dca0a0e51e0a8f5def (diff) | |
download | gdb-91eb6c46deee80bf5993d1316f13afe85cf0455f.zip gdb-91eb6c46deee80bf5993d1316f13afe85cf0455f.tar.gz gdb-91eb6c46deee80bf5993d1316f13afe85cf0455f.tar.bz2 |
* 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.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 10 | ||||
-rw-r--r-- | ld/ldlang.c | 16 |
2 files changed, 17 insertions, 9 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index f111869..a411f64 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -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 diff --git a/ld/ldlang.c b/ld/ldlang.c index fa597f3..380f487 100644 --- a/ld/ldlang.c +++ b/ld/ldlang.c @@ -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 { |