Automatic date update in version.in
[deliverable/binutils-gdb.git] / bfd / coff-h8500.c
index e9c878d820a09292d5c730c713f5a3a2382b6ef4..7e5844c316dd4973bca1320878ef96b4fa84d555 100644 (file)
@@ -1,6 +1,5 @@
 /* BFD back-end for Renesas H8/500 COFF binaries.
 /* BFD back-end for Renesas H8/500 COFF binaries.
-   Copyright 1993, 1994, 1995, 1997, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-   Free Software Foundation, Inc.
+   Copyright (C) 1993-2017 Free Software Foundation, Inc.
    Contributed by Cygnus Support.
    Written by Steve Chamberlain, <sac@cygnus.com>.
 
    Contributed by Cygnus Support.
    Written by Steve Chamberlain, <sac@cygnus.com>.
 
@@ -8,7 +7,7 @@
 
    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
 
    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 "bfd.h"
 #include "sysdep.h"
 #include "sysdep.h"
+#include "bfd.h"
 #include "libbfd.h"
 #include "bfdlink.h"
 #include "coff/h8500.h"
 #include "coff/internal.h"
 #include "libcoff.h"
 
 #include "libbfd.h"
 #include "bfdlink.h"
 #include "coff/h8500.h"
 #include "coff/internal.h"
 #include "libcoff.h"
 
-static int  coff_h8500_select_reloc PARAMS ((reloc_howto_type *));
-static void rtype2howto      PARAMS ((arelent *, struct internal_reloc *));
-static void reloc_processing PARAMS ((arelent *, struct internal_reloc *, asymbol **, bfd *, asection *));
-static void extra_case       PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *, bfd_byte *, unsigned int *, unsigned int *));
 
 #define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (1)
 
 
 #define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (1)
 
@@ -72,8 +68,7 @@ HOWTO (R_H8500_HIGH16, 0, 1, 8, FALSE, 0,
 /* Turn a howto into a reloc number.  */
 
 static int
 /* Turn a howto into a reloc number.  */
 
 static int
-coff_h8500_select_reloc (howto)
-     reloc_howto_type *howto;
+coff_h8500_select_reloc (reloc_howto_type *howto)
 {
   return howto->type;
 }
 {
   return howto->type;
 }
@@ -95,14 +90,12 @@ coff_h8500_select_reloc (howto)
 /* Code to turn a r_type into a howto ptr, uses the above howto table.  */
 
 static void
 /* Code to turn a r_type into a howto ptr, uses the above howto table.  */
 
 static void
-rtype2howto (internal, dst)
-     arelent * internal;
-     struct internal_reloc *dst;
+rtype2howto (arelent * internal, struct internal_reloc *dst)
 {
   switch (dst->r_type)
     {
     default:
 {
   switch (dst->r_type)
     {
     default:
-      abort ();
+      internal->howto = NULL;
       break;
     case R_H8500_IMM8:
       internal->howto = &r_imm8;
       break;
     case R_H8500_IMM8:
       internal->howto = &r_imm8;
@@ -144,12 +137,12 @@ rtype2howto (internal, dst)
 #define RELOC_PROCESSING(relent,reloc,symbols,abfd,section) \
  reloc_processing(relent, reloc, symbols, abfd, section)
 
 #define RELOC_PROCESSING(relent,reloc,symbols,abfd,section) \
  reloc_processing(relent, reloc, symbols, abfd, section)
 
-static void reloc_processing (relent, reloc, symbols, abfd, section)
-     arelent * relent;
-     struct internal_reloc *reloc;
-     asymbol ** symbols;
-     bfd * abfd;
-     asection * section;
+static void
+reloc_processing (arelent * relent,
+                 struct internal_reloc *reloc,
+                 asymbol ** symbols,
+                 bfd * abfd,
+                 asection * section)
 {
   relent->address = reloc->r_vaddr;
   rtype2howto (relent, reloc);
 {
   relent->address = reloc->r_vaddr;
   rtype2howto (relent, reloc);
@@ -164,14 +157,13 @@ static void reloc_processing (relent, reloc, symbols, abfd, section)
 }
 
 static void
 }
 
 static void
-extra_case (in_abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr)
-     bfd *in_abfd;
-     struct bfd_link_info *link_info;
-     struct bfd_link_order *link_order;
-     arelent *reloc;
-     bfd_byte *data;
-     unsigned int *src_ptr;
-     unsigned int *dst_ptr;
+extra_case (bfd *in_abfd,
+           struct bfd_link_info *link_info,
+           struct bfd_link_order *link_order,
+           arelent *reloc,
+           bfd_byte *data,
+           unsigned int *src_ptr,
+           unsigned int *dst_ptr)
 {
   bfd_byte *d = data+*dst_ptr;
   asection *input_section = link_order->u.indirect.section;
 {
   bfd_byte *d = data+*dst_ptr;
   asection *input_section = link_order->u.indirect.section;
@@ -229,7 +221,7 @@ extra_case (in_abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr)
        v = (v & 0x00ffffff) | (o & 0xff00000);
        bfd_put_32 (in_abfd, (bfd_vma) v, data  + *dst_ptr -1);
        (*dst_ptr) += 3;
        v = (v & 0x00ffffff) | (o & 0xff00000);
        bfd_put_32 (in_abfd, (bfd_vma) v, data  + *dst_ptr -1);
        (*dst_ptr) += 3;
-       (*src_ptr) += 3;;
+       (*src_ptr) += 3;
       }
       break;
     case R_H8500_IMM32:
       }
       break;
     case R_H8500_IMM32:
@@ -237,7 +229,7 @@ extra_case (in_abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr)
        int v = bfd_coff_reloc16_get_value (reloc, link_info, input_section);
        bfd_put_32 (in_abfd, (bfd_vma) v, data  + *dst_ptr);
        (*dst_ptr) += 4;
        int v = bfd_coff_reloc16_get_value (reloc, link_info, input_section);
        bfd_put_32 (in_abfd, (bfd_vma) v, data  + *dst_ptr);
        (*dst_ptr) += 4;
-       (*src_ptr) += 4;;
+       (*src_ptr) += 4;
       }
       break;
 
       }
       break;
 
@@ -252,14 +244,11 @@ extra_case (in_abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr)
                                    word and the pc's been incremented.  */
 
        if (gap > 128 || gap < -128)
                                    word and the pc's been incremented.  */
 
        if (gap > 128 || gap < -128)
-         {
-           if (! ((*link_info->callbacks->reloc_overflow)
-                  (link_info, NULL,
-                   bfd_asymbol_name (*reloc->sym_ptr_ptr),
-                   reloc->howto->name, reloc->addend, input_section->owner,
-                   input_section, reloc->address)))
-             abort ();
-         }
+         (*link_info->callbacks->reloc_overflow)
+           (link_info, NULL, bfd_asymbol_name (*reloc->sym_ptr_ptr),
+            reloc->howto->name, reloc->addend, input_section->owner,
+            input_section, reloc->address);
+
        bfd_put_8 (in_abfd, gap, data + *dst_ptr);
        (*dst_ptr)++;
        (*src_ptr)++;
        bfd_put_8 (in_abfd, gap, data + *dst_ptr);
        (*dst_ptr)++;
        (*src_ptr)++;
@@ -276,14 +265,11 @@ extra_case (in_abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr)
                                    word and the pc's been incremented.  */
 
        if (gap > 32767 || gap < -32768)
                                    word and the pc's been incremented.  */
 
        if (gap > 32767 || gap < -32768)
-         {
-           if (! ((*link_info->callbacks->reloc_overflow)
-                  (link_info, NULL,
-                   bfd_asymbol_name (*reloc->sym_ptr_ptr),
-                   reloc->howto->name, reloc->addend, input_section->owner,
-                   input_section, reloc->address)))
-             abort ();
-         }
+         (*link_info->callbacks->reloc_overflow)
+           (link_info, NULL, bfd_asymbol_name (*reloc->sym_ptr_ptr),
+            reloc->howto->name, reloc->addend, input_section->owner,
+            input_section, reloc->address);
+
        bfd_put_16 (in_abfd, (bfd_vma) gap, data + *dst_ptr);
        (*dst_ptr) += 2;
        (*src_ptr) += 2;
        bfd_put_16 (in_abfd, (bfd_vma) gap, data + *dst_ptr);
        (*dst_ptr) += 2;
        (*src_ptr) += 2;
@@ -297,6 +283,10 @@ extra_case (in_abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr)
 
 #define coff_reloc16_extra_cases extra_case
 
 
 #define coff_reloc16_extra_cases extra_case
 
+#ifndef bfd_pe_print_pdata
+#define bfd_pe_print_pdata     NULL
+#endif
+
 #include "coffcode.h"
 
 #undef  coff_bfd_get_relocated_section_contents
 #include "coffcode.h"
 
 #undef  coff_bfd_get_relocated_section_contents
@@ -305,4 +295,4 @@ extra_case (in_abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr)
   bfd_coff_reloc16_get_relocated_section_contents
 #define coff_bfd_relax_section bfd_coff_reloc16_relax_section
 
   bfd_coff_reloc16_get_relocated_section_contents
 #define coff_bfd_relax_section bfd_coff_reloc16_relax_section
 
-CREATE_BIG_COFF_TARGET_VEC (h8500coff_vec, "coff-h8500", 0, 0, '_', NULL, COFF_SWAP_TABLE)
+CREATE_BIG_COFF_TARGET_VEC (h8500_coff_vec, "coff-h8500", 0, 0, '_', NULL, COFF_SWAP_TABLE)
This page took 0.048336 seconds and 4 git commands to generate.