gdb: add target_ops::supports_displaced_step
[deliverable/binutils-gdb.git] / ld / mri.c
index 8fe016075344aa3e828ecab4093a7e09864f87c7..e5c379c8b6091331688362d5430da8e5920d01bf 100644 (file)
--- a/ld/mri.c
+++ b/ld/mri.c
@@ -1,31 +1,32 @@
 /* mri.c -- handle MRI style linker scripts
-   Copyright 1991, 1992, 1993, 1994, 1996, 1997, 1998, 1999, 2000, 2001,
-   2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
+   Copyright (C) 1991-2020 Free Software Foundation, Inc.
+   Contributed by Steve Chamberlain <sac@cygnus.com>.
 
-This file is part of GLD, the Gnu Linker.
+   This file is part of the GNU Binutils.
 
-GLD is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
-GLD is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-You should have received a copy of the GNU General Public License
-along with GLD; see the file COPYING.  If not, write to the Free
-Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
-02110-1301, USA.
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
 
-   This bit does the tree decoration when MRI style link scripts
-   are parsed.
 
-   Contributed by Steve Chamberlain <sac@cygnus.com>.  */
+/* This bit does the tree decoration when MRI style link scripts
+   are parsed.  */
 
 #include "sysdep.h"
 #include "bfd.h"
+#include "bfdlink.h"
+#include "ctf-api.h"
 #include "ld.h"
 #include "ldexp.h"
 #include "ldlang.h"
@@ -45,6 +46,8 @@ struct section_name_struct {
 };
 
 static unsigned int symbol_truncate = 10000;
+static etree_type *base; /* Relocation base - or null */
+
 static struct section_name_struct *order;
 static struct section_name_struct *only_load;
 static struct section_name_struct *address;
@@ -68,7 +71,8 @@ lookup (const char *name, struct section_name_struct **list)
        ptr = &((*ptr)->next);
     }
 
-  *ptr = xmalloc (sizeof (struct section_name_struct));
+  *ptr = (struct section_name_struct *)
+      xmalloc (sizeof (struct section_name_struct));
   return ptr;
 }
 
@@ -206,25 +210,27 @@ mri_draw_tree (void)
            base = p->vma ? p->vma : exp_nameop (NAME, ".");
 
          lang_enter_output_section_statement (p->name, base,
-                                              p->ok_to_load ? 0 : noload_section,
-                                              align, subalign, NULL, 0);
+                                              p->ok_to_load ? normal_section : noload_section,
+                                              align, subalign, NULL, 0, 0);
          base = 0;
-         tmp = xmalloc (sizeof *tmp);
+         tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
          tmp->next = NULL;
          tmp->spec.name = p->name;
          tmp->spec.exclude_name_list = NULL;
          tmp->spec.sorted = none;
+         tmp->spec.section_flag_list = NULL;
          lang_add_wild (NULL, tmp, FALSE);
 
          /* If there is an alias for this section, add it too.  */
          for (aptr = alias; aptr; aptr = aptr->next)
            if (strcmp (aptr->alias, p->name) == 0)
              {
-               tmp = xmalloc (sizeof *tmp);
+               tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
                tmp->next = NULL;
                tmp->spec.name = aptr->name;
                tmp->spec.exclude_name_list = NULL;
                tmp->spec.sorted = none;
+               tmp->spec.section_flag_list = NULL;
                lang_add_wild (NULL, tmp, FALSE);
              }
 
@@ -281,20 +287,14 @@ mri_format (const char *name)
   if (strcmp (name, "S") == 0)
     lang_add_output_format ("srec", NULL, NULL, 1);
 
-  else if (strcmp (name, "IEEE") == 0)
-    lang_add_output_format ("ieee", NULL, NULL, 1);
-
-  else if (strcmp (name, "COFF") == 0)
-    lang_add_output_format ("coff-m68k", NULL, NULL, 1);
-
   else
-    einfo (_("%P%F: unknown format type %s\n"), name);
+    einfo (_("%F%P: unknown format type %s\n"), name);
 }
 
 void
 mri_public (const char *name, etree_type *exp)
 {
-  lang_add_assignment (exp_assop ('=', name, exp));
+  lang_add_assignment (exp_assign (name, exp, FALSE));
 }
 
 void
This page took 0.024489 seconds and 4 git commands to generate.