aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2007-03-08 04:38:45 +0000
committerAlan Modra <amodra@gmail.com>2007-03-08 04:38:45 +0000
commit91eb6c46deee80bf5993d1316f13afe85cf0455f (patch)
treee4812029f104155cabfb63a1c2ac7f342a2c1bfc /ld
parentcb9f45d79f855f7e1d0b15dca0a0e51e0a8f5def (diff)
downloadgdb-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/ChangeLog10
-rw-r--r--ld/ldlang.c16
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
{