[BACK]Return to mmo.em CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / external / gpl3 / binutils.old / dist / ld / emultempl

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/external/gpl3/binutils.old/dist/ld/emultempl/mmo.em between version 1.6 and 1.7

version 1.6, 2020/04/03 17:51:15 version 1.7, 2022/12/23 17:09:26
Line 1 
Line 1 
 # This shell script emits a C file. -*- C -*-  # This shell script emits a C file. -*- C -*-
 #   Copyright (C) 2001-2018 Free Software Foundation, Inc.  #   Copyright (C) 2001-2020 Free Software Foundation, Inc.
 #  #
 # This file is part of the GNU Binutils.  # This file is part of the GNU Binutils.
 #  #
Line 24 
Line 24 
 fragment <<EOF  fragment <<EOF
 /* Need to have this macro defined before mmix-elfnmmo, which uses the  /* Need to have this macro defined before mmix-elfnmmo, which uses the
    name for the before_allocation function, defined in ldemul.c (for     name for the before_allocation function, defined in ldemul.c (for
    the mmo "emulation") or in elf32.em (for the elf64mmix     the mmo "emulation") or in elf.em (for the elf64mmix
    "emulation").  */     "emulation").  */
 #define gldmmo_before_allocation before_allocation_default  #define gldmmo_before_allocation before_allocation_default
   
 /* We include this header *not* because we expect to handle ELF here  /* We include this header *not* because we expect to handle ELF here
    but because we re-use the map_segments function in elf-generic.em,     but because we use the map_segments function.  But this is only to
    a file which is rightly somewhat ELF-centric.  But this is only to  
    get a weird testcase right; ld-mmix/bpo-22, forcing ELF to be     get a weird testcase right; ld-mmix/bpo-22, forcing ELF to be
    output from the mmo emulation: -m mmo --oformat elf64-mmix!  */     output from the mmo emulation: -m mmo --oformat elf64-mmix!  */
 #include "elf-bfd.h"  #include "ldelfgen.h"
   
 static void gld${EMULATION_NAME}_after_allocation (void);  static void gld${EMULATION_NAME}_after_allocation (void);
 EOF  EOF
Line 45  fragment <<EOF
Line 44  fragment <<EOF
   
 /* Place an orphan section.  We use this to put random SEC_CODE or  /* Place an orphan section.  We use this to put random SEC_CODE or
    SEC_READONLY sections right after MMO_TEXT_SECTION_NAME.  Much borrowed     SEC_READONLY sections right after MMO_TEXT_SECTION_NAME.  Much borrowed
    from elf32.em.  */     from elf.em.  */
   
 static lang_output_section_statement_type *  static lang_output_section_statement_type *
 mmo_place_orphan (asection *s,  mmo_place_orphan (asection *s,
Line 117  mmo_place_orphan (asection *s,
Line 116  mmo_place_orphan (asection *s,
             && (nexts->flags & SEC_EXCLUDE) == 0              && (nexts->flags & SEC_EXCLUDE) == 0
             && ((nexts->flags ^ flags) & (SEC_LOAD | SEC_ALLOC)) == 0              && ((nexts->flags ^ flags) & (SEC_LOAD | SEC_ALLOC)) == 0
             && (nexts->owner->flags & DYNAMIC) == 0              && (nexts->owner->flags & DYNAMIC) == 0
             && nexts->owner->usrdata != NULL              && !bfd_input_just_syms (nexts->owner))
             && !(((lang_input_statement_type *) nexts->owner->usrdata)  
                  ->flags.just_syms))  
           flags = (((flags ^ SEC_READONLY) | (nexts->flags ^ SEC_READONLY))            flags = (((flags ^ SEC_READONLY) | (nexts->flags ^ SEC_READONLY))
                    ^ SEC_READONLY);                     ^ SEC_READONLY);
     }      }
Line 166  mmo_place_orphan (asection *s,
Line 163  mmo_place_orphan (asection *s,
   
           /* We have to find the oss before this one, so we can use that as            /* We have to find the oss before this one, so we can use that as
              "after".  */               "after".  */
           for (lookup = &lang_output_section_statement.head->output_section_statement;            for (lookup = (void *) lang_os_list.head;
                lookup != NULL && lookup->next != before;                 lookup != NULL && lookup->next != before;
                lookup = lookup->next)                 lookup = lookup->next)
             ;              ;
Line 182  mmo_place_orphan (asection *s,
Line 179  mmo_place_orphan (asection *s,
     return NULL;      return NULL;
   
   /* If there's an output section by *this* name, we'll use it, regardless    /* If there's an output section by *this* name, we'll use it, regardless
      of actual section flags, in contrast to what's done in elf32.em.  */       of actual section flags, in contrast to what's done in elf.em.  */
   os = lang_insert_orphan (s, secname, 0, after, place, NULL, NULL);    os = lang_insert_orphan (s, secname, 0, after, place, NULL, NULL);
   
   return os;    return os;
Line 193  mmo_place_orphan (asection *s,
Line 190  mmo_place_orphan (asection *s,
    paper over the bug similarly.  */     paper over the bug similarly.  */
   
 static void  static void
 mmo_wipe_sec_reloc_flag (bfd *abfd, asection *sec, void *ptr ATTRIBUTE_UNUSED)  mmo_wipe_sec_reloc_flag (bfd *abfd ATTRIBUTE_UNUSED, asection *sec,
                            void *ptr ATTRIBUTE_UNUSED)
 {  {
   bfd_set_section_flags (abfd, sec,    bfd_set_section_flags (sec, bfd_section_flags (sec) & ~SEC_RELOC);
                          bfd_get_section_flags (abfd, sec) & ~SEC_RELOC);  
 }  }
   
 /* Iterate with bfd_map_over_sections over mmo_wipe_sec_reloc_flag... */  /* Iterate with bfd_map_over_sections over mmo_wipe_sec_reloc_flag... */
Line 205  static void
Line 202  static void
 gld${EMULATION_NAME}_after_allocation (void)  gld${EMULATION_NAME}_after_allocation (void)
 {  {
   bfd_map_over_sections (link_info.output_bfd, mmo_wipe_sec_reloc_flag, NULL);    bfd_map_over_sections (link_info.output_bfd, mmo_wipe_sec_reloc_flag, NULL);
   gld${EMULATION_NAME}_map_segments (FALSE);    ldelf_map_segments (FALSE);
 }  }
   
 /* To get on-demand global register allocation right, we need to parse the  /* To get on-demand global register allocation right, we need to parse the

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

CVSweb <webmaster@jp.NetBSD.org>