Automatic date update in version.in
[deliverable/binutils-gdb.git] / bfd / coff-z80.c
index cb5a0e3dd1ae40b95d836ead1859fabc9f948619..2cab1171e45d375fbf3c499dbec2b8842f5de5ed 100644 (file)
@@ -1,12 +1,12 @@
 /* BFD back-end for Zilog Z80 COFF binaries.
 /* BFD back-end for Zilog Z80 COFF binaries.
-   Copyright 2005, 2007 Free Software Foundation, Inc.
+   Copyright (C) 2005-2016 Free Software Foundation, Inc.
    Contributed by Arnold Metselaar <arnold_m@operamail.com>
 
    This file is part of BFD, the Binary File Descriptor library.
 
    Contributed by Arnold Metselaar <arnold_m@operamail.com>
 
    This file is part of BFD, the Binary File Descriptor library.
 
-   This program is free software; you can redistribute it and/or modify 
+   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
    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,
@@ -30,7 +30,7 @@
 #define COFF_DEFAULT_SECTION_ALIGNMENT_POWER 0
 
 static reloc_howto_type r_imm32 =
 #define COFF_DEFAULT_SECTION_ALIGNMENT_POWER 0
 
 static reloc_howto_type r_imm32 =
-HOWTO (R_IMM32, 0, 1, 32, FALSE, 0,
+HOWTO (R_IMM32, 0, 2, 32, FALSE, 0,
        complain_overflow_dont, 0, "r_imm32", TRUE, 0xffffffff, 0xffffffff,
        FALSE);
 
        complain_overflow_dont, 0, "r_imm32", TRUE, 0xffffffff, 0xffffffff,
        FALSE);
 
@@ -50,12 +50,12 @@ HOWTO (R_IMM8, 0, 0, 8, FALSE, 0,
        FALSE);
 
 static reloc_howto_type r_jr =
        FALSE);
 
 static reloc_howto_type r_jr =
-HOWTO (R_JR, 0, 0, 8, TRUE, 0, 
+HOWTO (R_JR, 0, 0, 8, TRUE, 0,
        complain_overflow_signed, 0, "r_jr", FALSE, 0, 0xFF,
        FALSE);
 
 static reloc_howto_type r_off8 =
        complain_overflow_signed, 0, "r_jr", FALSE, 0, 0xFF,
        FALSE);
 
 static reloc_howto_type r_off8 =
-HOWTO (R_OFF8, 0, 0, 8, FALSE, 0, 
+HOWTO (R_OFF8, 0, 0, 8, FALSE, 0,
        complain_overflow_signed, 0,"r_off8", FALSE, 0, 0xff,
        FALSE);
 
        complain_overflow_signed, 0,"r_off8", FALSE, 0, 0xff,
        FALSE);
 
@@ -81,7 +81,7 @@ rtype2howto (arelent *internal, struct internal_reloc *dst)
   switch (dst->r_type)
     {
     default:
   switch (dst->r_type)
     {
     default:
-      abort ();
+      internal->howto = NULL;
       break;
     case R_IMM8:
       internal->howto = &r_imm8;
       break;
     case R_IMM8:
       internal->howto = &r_imm8;
@@ -188,14 +188,11 @@ extra_case (bfd *in_abfd,
        val = bfd_coff_reloc16_get_value (reloc, link_info,
                                           input_section);
        if (val>127 || val<-128) /* Test for overflow.  */
        val = bfd_coff_reloc16_get_value (reloc, link_info,
                                           input_section);
        if (val>127 || val<-128) /* Test for overflow.  */
-         {
-           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, val, data + *dst_ptr);
        (*dst_ptr) += 1;
        (*src_ptr) += 1;
        bfd_put_8 (in_abfd, val, data + *dst_ptr);
        (*dst_ptr) += 1;
        (*src_ptr) += 1;
@@ -247,14 +244,11 @@ extra_case (bfd *in_abfd,
                                     the offset.  */
 
        if (gap >= 128 || gap < -128)
                                     the offset.  */
 
        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)++;
@@ -270,6 +264,10 @@ extra_case (bfd *in_abfd,
 #define coff_bfd_reloc_type_lookup  coff_z80_reloc_type_lookup
 #define coff_bfd_reloc_name_lookup coff_z80_reloc_name_lookup
 
 #define coff_bfd_reloc_type_lookup  coff_z80_reloc_type_lookup
 #define coff_bfd_reloc_name_lookup coff_z80_reloc_name_lookup
 
+#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
@@ -279,6 +277,7 @@ extra_case (bfd *in_abfd,
 #undef  coff_bfd_relax_section
 #define coff_bfd_relax_section bfd_coff_reloc16_relax_section
 
 #undef  coff_bfd_relax_section
 #define coff_bfd_relax_section bfd_coff_reloc16_relax_section
 
-CREATE_LITTLE_COFF_TARGET_VEC (z80coff_vec, "coff-z80", 0, 0, '\0', NULL, 
+CREATE_LITTLE_COFF_TARGET_VEC (z80_coff_vec, "coff-z80", 0,
+                              SEC_CODE | SEC_DATA, '\0', NULL,
                               COFF_SWAP_TABLE)
 
                               COFF_SWAP_TABLE)
 
This page took 0.02421 seconds and 4 git commands to generate.