From: Alan Modra Date: Fri, 9 Oct 2009 05:19:37 +0000 (+0000) Subject: PR ld/10749 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=fd68d03d9244a426ca1ddd902e8f5e3d4a2e7c64;p=binutils-gdb.git PR ld/10749 * ldlang.c (lang_size_sections_1): Zero section vmas only for COFF. --- diff --git a/ld/ChangeLog b/ld/ChangeLog index 5ed952e0a9e..8ed1da915fb 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 f1daeb57113..898ec054d2a 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) {