aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog6
-rw-r--r--ld/ldlang.c8
2 files changed, 13 insertions, 1 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 5ed952e..8ed1da9 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2009-10-09 Alan Modra <amodra@bigpond.net.au>
+
+ PR ld/10749
+ * ldlang.c (lang_size_sections_1): Zero section vmas only for COFF.
+
2009-10-08 Alan Modra <amodra@bigpond.net.au>
PR ld/10744
@@ -74,6 +79,7 @@
2009-09-27 Christopher Faylor <me+cygwin@cgf.cx>
+ PR ld/10634
* ldlang.c (lang_size_sections_1): Always force output vma to zero for
relocatable sections.
(lang_size_sections_1): Revert previous COFF-only accommodation for
diff --git a/ld/ldlang.c b/ld/ldlang.c
index f1daeb5..898ec05 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -4665,7 +4665,13 @@ lang_size_sections_1
lang_memory_region_type *r;
os = &s->output_section_statement;
- if (os->addr_tree == NULL && link_info.relocatable)
+ /* FIXME: We shouldn't need to zero section vmas for ld -r
+ here, in lang_insert_orphan, or in the default linker scripts.
+ This is covering for coff backend linker bugs. See PR6945. */
+ if (os->addr_tree == NULL
+ && link_info.relocatable
+ && (bfd_get_flavour (link_info.output_bfd)
+ == bfd_target_coff_flavour))
os->addr_tree = exp_intop (0);
if (os->addr_tree != NULL)
{