OSDN Git Service

PR ld/10749
authoramodra <amodra>
Fri, 9 Oct 2009 05:19:37 +0000 (05:19 +0000)
committeramodra <amodra>
Fri, 9 Oct 2009 05:19:37 +0000 (05:19 +0000)
* ldlang.c (lang_size_sections_1): Zero section vmas only for COFF.

ld/ChangeLog
ld/ldlang.c

index 5ed952e..8ed1da9 100644 (file)
@@ -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
index f1daeb5..898ec05 100644 (file)
@@ -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)
              {