* ldlang.c (lang_size_sections): Last, set _cooked_size for output
authorHans-Peter Nilsson <hp@axis.com>
Fri, 17 Oct 2003 23:05:50 +0000 (23:05 +0000)
committerHans-Peter Nilsson <hp@axis.com>
Fri, 17 Oct 2003 23:05:50 +0000 (23:05 +0000)
sections.

ld/ChangeLog
ld/ldlang.c

index 03f47d69de9d6fa4a3a950c7d30386303b459ed8..be940113005d4732d51afa0d022f58217cf30eb8 100644 (file)
@@ -1,3 +1,8 @@
+2003-10-18  Hans-Peter Nilsson  <hp@bitrange.com>
+
+       * ldlang.c (lang_size_sections): Last, set _cooked_size for output
+       sections.
+
 2003-10-16  Alan Modra  <amodra@bigpond.net.au>
 
        * Makefile.am (GENSCRIPTS_EXTRA, GEN_EXTRA_DEPENDS): Remove.  Use
index 039c7cbf57bc2642073127d8f8689d0979f61052..a6ceef0c73207111539d1fc02b07a2296689778b 100644 (file)
@@ -3227,6 +3227,7 @@ lang_size_sections
    bfd_boolean check_regions)
 {
   bfd_vma result;
+  asection *o;
 
   /* Callers of exp_fold_tree need to increment this.  */
   lang_statement_iteration++;
@@ -3253,6 +3254,14 @@ lang_size_sections
        }
     }
 
+  /* Some backend relaxers want to refer to the output section size.  Give
+     them a section size that does not change on the next call while they
+     relax.  We can't set this at top because lang_reset_memory_regions
+     which is called before we get here, sets _raw_size to 0 on relaxing
+     rounds.  */
+  for (o = output_bfd->sections; o != NULL; o = o->next)
+    o->_cooked_size = o->_raw_size;
+
   return result;
 }