diff options
-rw-r--r-- | ld/ChangeLog | 6 | ||||
-rw-r--r-- | ld/ldlang.c | 8 |
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) { |