X-Git-Url: https://oss.titaniummirror.com/gitweb?p=msp430-binutils.git;a=blobdiff_plain;f=ld%2Femultempl%2Fmmix-elfnmmo.em;fp=ld%2Femultempl%2Fmmix-elfnmmo.em;h=6a7b295406e96c0b56f64139873967a79bdc5d4b;hp=9957268cbdfcf7db14273802569e4af09f789bbd;hb=d5da4f291af551c0b8b79e1d4a9b173d60e5c10e;hpb=7b5ea4fcdf2819e070665ab5610f8b48e3867c10 diff --git a/ld/emultempl/mmix-elfnmmo.em b/ld/emultempl/mmix-elfnmmo.em index 9957268..6a7b295 100644 --- a/ld/emultempl/mmix-elfnmmo.em +++ b/ld/emultempl/mmix-elfnmmo.em @@ -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");