]> oss.titaniummirror.com Git - msp430-binutils.git/blobdiff - ld/emultempl/mmix-elfnmmo.em
Imported binutils-2.20
[msp430-binutils.git] / ld / emultempl / mmix-elfnmmo.em
index 9957268cbdfcf7db14273802569e4af09f789bbd..6a7b295406e96c0b56f64139873967a79bdc5d4b 100644 (file)
@@ -1,5 +1,6 @@
 # This shell script emits a C file. -*- C -*-
-#   Copyright 2001, 2002, 2003, 2004, 2007 Free Software Foundation, Inc.
+#   Copyright 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009
+#   Free Software Foundation, Inc.
 #
 # This file is part of the GNU Binutils.
 #
@@ -43,7 +44,7 @@ mmix_before_allocation (void)
      link).  */
   command_line.relax = TRUE;
 
-  if (!_bfd_mmix_before_linker_allocation (output_bfd, &link_info))
+  if (!_bfd_mmix_before_linker_allocation (link_info.output_bfd, &link_info))
     einfo ("%X%P: Internal problems setting up section %s",
           MMIX_LD_ALLOCATED_REG_CONTENTS_SECTION_NAME);
 }
@@ -55,10 +56,11 @@ mmix_before_allocation (void)
 static void
 mmix_after_allocation (void)
 {
-  asection *sec
-    = bfd_get_section_by_name (output_bfd, MMIX_REG_CONTENTS_SECTION_NAME);
+  asection *sec;
   bfd_signed_vma regvma;
 
+  gld${EMULATION_NAME}_after_allocation ();
+
   /* If there's no register section, we don't need to do anything.  On the
      other hand, if there's a non-standard linker-script without a mapping
      from MMIX_LD_ALLOCATED_REG_CONTENTS_SECTION_NAME when that section is
@@ -70,9 +72,11 @@ mmix_after_allocation (void)
      that's expected when you play tricks with linker scripts.  The
      "NOCROSSREFS 2" test does not run the output so it does not matter
      there.  */
+  sec = bfd_get_section_by_name (link_info.output_bfd,
+                                MMIX_REG_CONTENTS_SECTION_NAME);
   if (sec == NULL)
     sec
-      = bfd_get_section_by_name (output_bfd,
+      = bfd_get_section_by_name (link_info.output_bfd,
                                 MMIX_LD_ALLOCATED_REG_CONTENTS_SECTION_NAME);
   if (sec == NULL)
     return;
@@ -91,16 +95,16 @@ mmix_after_allocation (void)
     }
 
   /* Set vma to correspond to first such register number * 8.  */
-  bfd_set_section_vma (output_bfd, sec, (bfd_vma) regvma);
+  bfd_set_section_vma (link_info.output_bfd, sec, (bfd_vma) regvma);
 
   /* Simplify symbol output for the register section (without contents;
      created for register symbols) by setting the output offset to 0.
      This section is only present when there are register symbols.  */
-  sec = bfd_get_section_by_name (output_bfd, MMIX_REG_SECTION_NAME);
+  sec = bfd_get_section_by_name (link_info.output_bfd, MMIX_REG_SECTION_NAME);
   if (sec != NULL)
     bfd_set_section_vma (abfd, sec, 0);
 
-  if (!_bfd_mmix_after_linker_allocation (output_bfd, &link_info))
+  if (!_bfd_mmix_after_linker_allocation (link_info.output_bfd, &link_info))
     {
       /* This is a fatal error; make einfo call not return.  */
       einfo ("%F%P: Can't finalize linker-allocated global registers\n");