Disable parts of gdb.base/source-dir.exp on remote host
[deliverable/binutils-gdb.git] / bfd / aout-ns32k.c
index cc9f06d8dabd8e16f987388eaef738f72dfd09af..d988409817de441a8cb43402c36953d6730d58c7 100644 (file)
@@ -1,13 +1,12 @@
 /* BFD back-end for ns32k a.out-ish binaries.
 /* BFD back-end for ns32k a.out-ish binaries.
-   Copyright 1990, 1991, 1992, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-   2002, 2003, 2005 Free Software Foundation, Inc.
+   Copyright (C) 1990-2020 Free Software Foundation, Inc.
    Contributed by Ian Dall (idall@eleceng.adelaide.edu.au).
 
    This file is part of BFD, the Binary File Descriptor library.
 
    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
    Contributed by Ian Dall (idall@eleceng.adelaide.edu.au).
 
    This file is part of BFD, the Binary File Descriptor library.
 
    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 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
 
    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.  */
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
 
 
+#include "sysdep.h"
 #include "bfd.h"
 #include "aout/aout64.h"
 #include "ns32k.h"
 #include "bfd.h"
 #include "aout/aout64.h"
 #include "ns32k.h"
 /* Do not "beautify" the CONCAT* macro args.  Traditional C will not
    remove whitespace added here, and thus will fail to concatenate
    the tokens.  */
 /* Do not "beautify" the CONCAT* macro args.  Traditional C will not
    remove whitespace added here, and thus will fail to concatenate
    the tokens.  */
-#define MYNS(OP) CONCAT2 (ns32kaout_,OP)
+#define MYNS(OP) CONCAT2 (ns32k_aout_,OP)
 
 
-reloc_howto_type * MYNS (bfd_reloc_type_lookup) (bfd * abfd, bfd_reloc_code_real_type);
-bfd_boolean        MYNS (write_object_contents) (bfd *abfd);
+reloc_howto_type * MYNS (bfd_reloc_type_lookup) (bfd *, bfd_reloc_code_real_type);
+reloc_howto_type * MYNS (bfd_reloc_name_lookup) (bfd *, const char *);
+bfd_boolean       MYNS (write_object_contents) (bfd *);
 
 /* Avoid multiple definitions from aoutx if supporting
    standard a.out format(s) as well as this one.  */
 
 /* Avoid multiple definitions from aoutx if supporting
    standard a.out format(s) as well as this one.  */
@@ -65,10 +67,10 @@ void bfd_ns32k_arch (void);
    sym1: .long foo      # 2's complement not pc relative
 
    self:  movd @self, r0 # pc relative displacement
    sym1: .long foo      # 2's complement not pc relative
 
    self:  movd @self, r0 # pc relative displacement
-          movd foo, r0   # non pc relative displacement
+         movd foo, r0   # non pc relative displacement
 
    self:  movd self, r0  # pc relative immediate
 
    self:  movd self, r0  # pc relative immediate
-          movd foo, r0   # non pc relative immediate
+         movd foo, r0   # non pc relative immediate
 
    In addition, for historical reasons the encoding of the relocation types
    in the a.out format relocation entries is such that even the relocation
 
    In addition, for historical reasons the encoding of the relocation types
    in the a.out format relocation entries is such that even the relocation
@@ -133,10 +135,10 @@ reloc_howto_type MY (howto_table)[] =
 
 #define CTOR_TABLE_RELOC_HOWTO(BFD) (MY (howto_table) + 14)
 
 
 #define CTOR_TABLE_RELOC_HOWTO(BFD) (MY (howto_table) + 14)
 
-#define RELOC_STD_BITS_NS32K_TYPE_BIG          0x06
-#define RELOC_STD_BITS_NS32K_TYPE_LITTLE       0x60
-#define RELOC_STD_BITS_NS32K_TYPE_SH_BIG       1
-#define RELOC_STD_BITS_NS32K_TYPE_SH_LITTLE    5
+#define RELOC_STD_BITS_NS32K_TYPE_BIG          0x06
+#define RELOC_STD_BITS_NS32K_TYPE_LITTLE       0x60
+#define RELOC_STD_BITS_NS32K_TYPE_SH_BIG       1
+#define RELOC_STD_BITS_NS32K_TYPE_SH_LITTLE    5
 
 static reloc_howto_type *
 MY (reloc_howto) (bfd *abfd ATTRIBUTE_UNUSED,
 
 static reloc_howto_type *
 MY (reloc_howto) (bfd *abfd ATTRIBUTE_UNUSED,
@@ -212,7 +214,7 @@ MY (bfd_reloc_type_lookup) (bfd *abfd, bfd_reloc_code_real_type code)
 
   BFD_ASSERT (ext == 0);
   if (code == BFD_RELOC_CTOR)
 
   BFD_ASSERT (ext == 0);
   if (code == BFD_RELOC_CTOR)
-    switch (bfd_get_arch_info (abfd)->bits_per_address)
+    switch (bfd_arch_bits_per_address (abfd))
       {
       case 32:
        code = BFD_RELOC_32;
       {
       case 32:
        code = BFD_RELOC_32;
@@ -246,6 +248,22 @@ MY (bfd_reloc_type_lookup) (bfd *abfd, bfd_reloc_code_real_type code)
 #undef ENTRY
 }
 
 #undef ENTRY
 }
 
+reloc_howto_type *
+MY (bfd_reloc_name_lookup) (bfd *abfd ATTRIBUTE_UNUSED,
+                           const char *r_name)
+{
+  unsigned int i;
+
+  for (i = 0;
+       i < sizeof (MY (howto_table)) / sizeof (MY (howto_table)[0]);
+       i++)
+    if (MY (howto_table)[i].name != NULL
+       && strcasecmp (MY (howto_table)[i].name, r_name) == 0)
+      return &MY (howto_table)[i];
+
+  return NULL;
+}
+
 static void
 MY_swap_std_reloc_in (bfd *abfd,
                      struct reloc_std_external *bytes,
 static void
 MY_swap_std_reloc_in (bfd *abfd,
                      struct reloc_std_external *bytes,
@@ -274,11 +292,8 @@ MY_swap_std_reloc_out (bfd *abfd,
   int r_index;
   asymbol *sym = *(g->sym_ptr_ptr);
   int r_extern;
   int r_index;
   asymbol *sym = *(g->sym_ptr_ptr);
   int r_extern;
-  unsigned int r_addend;
   asection *output_section = sym->section->output_section;
 
   asection *output_section = sym->section->output_section;
 
-  r_addend = g->addend + (*(g->sym_ptr_ptr))->section->output_section->vma;
-
   /* Name was clobbered by aout_write_syms to be symbol index.  */
 
   /* If this relocation is relative to a symbol then set the
   /* Name was clobbered by aout_write_syms to be symbol index.  */
 
   /* If this relocation is relative to a symbol then set the
@@ -288,10 +303,10 @@ MY_swap_std_reloc_out (bfd *abfd,
      from the abs section, or as a symbol which has an abs value.
      Check for that here.  */
   if (bfd_is_com_section (output_section)
      from the abs section, or as a symbol which has an abs value.
      Check for that here.  */
   if (bfd_is_com_section (output_section)
-      || output_section == &bfd_abs_section
-      || output_section == &bfd_und_section)
+      || bfd_is_abs_section (output_section)
+      || bfd_is_und_section (output_section))
     {
     {
-      if (bfd_abs_section.symbol == sym)
+      if (bfd_abs_section_ptr->symbol == sym)
        {
          /* Whoops, looked like an abs symbol, but is really an offset
             from the abs section.  */
        {
          /* Whoops, looked like an abs symbol, but is really an offset
             from the abs section.  */
@@ -341,7 +356,6 @@ _bfd_ns32k_relocate_contents (reloc_howto_type *howto,
     case 2:
       return _bfd_relocate_contents (howto, input_bfd, relocation,
                                    location);
     case 2:
       return _bfd_relocate_contents (howto, input_bfd, relocation,
                                    location);
-      break;
     default:
       return bfd_reloc_notsupported;
     }
     default:
       return bfd_reloc_notsupported;
     }
This page took 0.035687 seconds and 4 git commands to generate.