Rename lang_output_section_statement to lang_os_list
[deliverable/binutils-gdb.git] / ld / emultempl / cr16elf.em
index 3c66f6642c39f9771ec135e8cedd9e942d28670a..6fb206271a68fe299cd3800a589931e19641f846 100644 (file)
@@ -1,5 +1,5 @@
 # This shell script emits a C file. -*- C -*-
-# Copyright 2007, 2008 Free Software Foundation, Inc.
+# Copyright (C) 2007-2019 Free Software Foundation, Inc.
 # Contributed by M R Swami Reddy <MR.Swami.Reddy@nsc.com>
 #
 # This file is part of the GNU Binutils.
@@ -27,9 +27,6 @@ fragment <<EOF
 
 #include "ldctor.h"
 
-/* Flag for the emulation-specific "--no-relax" option.  */
-static bfd_boolean disable_relaxation = FALSE;
-
 static void check_sections (bfd *, asection *, void *);
 
 
@@ -41,16 +38,16 @@ cr16_elf_after_open (void)
   /* Call the standard elf routine.  */
   gld${EMULATION_NAME}_after_open ();
 
-   if (command_line.embedded_relocs
-       && (! link_info.relocatable))
-     {
-       bfd *abfd;
+  if (command_line.embedded_relocs
+      && !bfd_link_relocatable (&link_info))
+    {
+      bfd *abfd;
 
       /* In the embedded relocs mode we create a .emreloc section for each
         input file with a nonzero .data section.  The BFD backend will fill in
         these sections with magic numbers which can be used to relocate the
         data section at run time.  */
-      for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link_next)
+      for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link.next)
        {
          asection *datasec;
 
@@ -60,7 +57,8 @@ cr16_elf_after_open (void)
             COFF and ELF.  */
          if (bfd_get_flavour (abfd) != bfd_target_coff_flavour
              && bfd_get_flavour (abfd) != bfd_target_elf_flavour)
-           einfo ("%F%B: all input objects must be COFF or ELF for --embedded-relocs\n");
+           einfo (_("%F%P: %pB: all input objects must be COFF or ELF "
+                    "for --embedded-relocs\n"));
 
          datasec = bfd_get_section_by_name (abfd, ".data.rel");
 
@@ -85,12 +83,12 @@ cr16_elf_after_open (void)
                  || ! bfd_set_section_alignment (abfd, relsec, 2)
                  || ! bfd_set_section_size (abfd, relsec,
                                             datasec->reloc_count * 8))
-               einfo ("%F%B: can not create .emreloc section: %E\n");
+               einfo (_("%F%P: %pB: can not create .emreloc section: %E\n"));
            }
 
          /* Double check that all other data sections are empty, as is
             required for embedded PIC code.  */
-         bfd_map_over_sections (abfd, check_sections, datasec); 
+         bfd_map_over_sections (abfd, check_sections, datasec);
        }
     }
 }
@@ -102,9 +100,9 @@ static void
 check_sections (bfd *abfd, asection *sec, void *datasec)
 {
   if ((strncmp (bfd_get_section_name (abfd, sec), ".data.rel", 9) == 0)
-     && sec != datasec
-     && sec->reloc_count == 0 )
-    einfo ("%B%X: section %s has relocs; can not use --embedded-relocs\n",
+      && sec != datasec
+      && sec->reloc_count == 0 )
+    einfo (_("%X%P: %pB: section %s has relocs; can not use --embedded-relocs\n"),
           abfd, bfd_get_section_name (abfd, sec));
 }
 
@@ -121,6 +119,8 @@ cr16elf_after_parse (void)
      meaninful in CR16 embedded systems. Moreover, when magic_demand_paged
      is true the link sometimes fails.  */
   config.magic_demand_paged = FALSE;
+
+  gld${EMULATION_NAME}_after_parse ();
 }
 
 /* This is called after the sections have been attached to output
@@ -132,16 +132,16 @@ cr16elf_before_allocation (void)
   /* Call the default first.  */
   gld${EMULATION_NAME}_before_allocation ();
 
-   if (command_line.embedded_relocs
-       && (! link_info.relocatable))
-     {
+  if (command_line.embedded_relocs
+      && (!bfd_link_relocatable (&link_info)))
+    {
 
-   bfd *abfd;
+      bfd *abfd;
 
-   /* If we are generating embedded relocs, call a special BFD backend
+      /* If we are generating embedded relocs, call a special BFD backend
         routine to do the work.  */
-   for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link_next)
-      {
+      for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link.next)
+       {
          asection *datasec, *relsec;
          char *errmsg;
 
@@ -154,51 +154,29 @@ cr16elf_before_allocation (void)
          ASSERT (relsec != NULL);
 
          if (! bfd_cr16_elf32_create_embedded_relocs (abfd, &link_info,
-                                                          datasec, relsec,
-                                                          &errmsg))
-               {
-                 if (errmsg == NULL)
-                   einfo ("%B%X: can not create runtime reloc information: %E\n",
-                          abfd);
-                 else
-                   einfo ("%X%B: can not create runtime reloc information: %s\n",
-                          abfd, errmsg);
-               }
-       }
-     }
+                                                      datasec, relsec,
+                                                      &errmsg))
+           {
+             if (errmsg == NULL)
+               einfo (_("%X%P: %pB: can not create runtime reloc information: %E\n"),
+                      abfd);
+             else
+               einfo (_("%X%P: %pB: can not create runtime reloc information: %s\n"),
+                      abfd, errmsg);
+           }
+       }
+    }
 
   /* Enable relaxation by default if the "--no-relax" option was not
      specified.  This is done here instead of in the before_parse hook
      because there is a check in main() to prohibit use of --relax and
      -r together.  */
-
-  if (!disable_relaxation)
-    command_line.relax = TRUE;
+  if (RELAXATION_DISABLED_BY_DEFAULT)
+    ENABLE_RELAXATION;
 }
 
 EOF
 
-# Define some shell vars to insert bits of code into the standard elf
-# parse_args and list_options functions.
-#
-PARSE_AND_LIST_PROLOGUE='
-#define OPTION_NO_RELAX                        301
-'
-
-PARSE_AND_LIST_LONGOPTS='
-  { "no-relax", no_argument, NULL, OPTION_NO_RELAX},
-'
-
-PARSE_AND_LIST_OPTIONS='
-  fprintf (file, _("  --no-relax                  Do not relax branches\n"));
-'
-
-PARSE_AND_LIST_ARGS_CASES='
-    case OPTION_NO_RELAX:
-      disable_relaxation = TRUE;
-      break;
-'
-
 # Put these extra cr16-elf routines in ld_${EMULATION_NAME}_emulation
 #
 LDEMUL_AFTER_OPEN=cr16_elf_after_open
This page took 0.026755 seconds and 4 git commands to generate.