From fd68d03d9244a426ca1ddd902e8f5e3d4a2e7c64 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Fri, 9 Oct 2009 05:19:37 +0000 Subject: [PATCH] PR ld/10749 * ldlang.c (lang_size_sections_1): Zero section vmas only for COFF. --- ld/ChangeLog | 6 ++++++ ld/ldlang.c | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-) 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 + + PR ld/10749 + * ldlang.c (lang_size_sections_1): Zero section vmas only for COFF. + 2009-10-08 Alan Modra PR ld/10744 @@ -74,6 +79,7 @@ 2009-09-27 Christopher Faylor + 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) { -- 2.7.4