Keep m68klynx.h
[deliverable/binutils-gdb.git] / bfd / coff-a29k.c
index 4adacdb1af75c70c96492b170b6353de423ed99c..3cf860787646fb31db16edc28de655a8dc58ebd9 100644 (file)
@@ -1,5 +1,5 @@
-/* AMD 29000 COFF back-end for BFD.
-   Copyright (C) 1990-1991 Free Software Foundation, Inc.
+/* BFD back-end for AMD 29000 COFF binaries.
+   Copyright 1990, 1991, 1992, 1993 Free Software Foundation, Inc.
    Contributed by David Wood at New York University 7/8/91.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -18,8 +18,6 @@ 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., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
-/* $Id$ */
-
 #define A29K 1
 
 #include "bfd.h"
@@ -44,7 +42,7 @@ asymbol *symbol;
 {                                             
   long relocation = 0;
 
-  if (symbol->section == &bfd_com_section) 
+  if (bfd_is_com_section (symbol->section))
   {
     relocation = 0;                           
   }
@@ -228,24 +226,21 @@ DEFUN(a29k_reloc,(abfd, reloc_entry, symbol_in, data, input_section, output_bfd)
 */
 
 /*FIXME: I'm not real sure about this table */
-#define NA     0       /* Obsolete fields, via the documentation */
-#define NAB false
 static reloc_howto_type howto_table[] = 
 {
-  {R_ABS,     0, 3, NA, false, NA, NAB, true,a29k_reloc,"ABS",     true, 0xffffffff,0xffffffff, false},
+  {R_ABS,     0, 3, 32, false, 0, complain_overflow_bitfield,a29k_reloc,"ABS",     true, 0xffffffff,0xffffffff, false},
   {1},  {2},  {3},   {4},  {5},  {6},  {7},  {8},  {9}, {10},
   {11}, {12}, {13}, {14}, {15}, {16}, {17}, {18}, {19}, {20},
   {21}, {22}, {23},
-  {R_IREL,    0, 3, NA, true,  NA, NAB, true,a29k_reloc,"IREL",    true, 0xffffffff,0xffffffff, false},
-  {R_IABS,    0, 3, NA, false, NA, NAB, true,a29k_reloc,"IABS",    true, 0xffffffff,0xffffffff, false},
-  {R_ILOHALF, 0, 3, NA, true,  NA, NAB, true,a29k_reloc,"ILOHALF", true, 0x0000ffff,0x0000ffff, false},
-  {R_IHIHALF, 0, 3, NA, true,  NA, NAB, true,a29k_reloc,"IHIHALF", true, 0xffff0000,0xffff0000, false},
-  {R_IHCONST, 0, 3, NA, true,  NA, NAB, true,a29k_reloc,"IHCONST", true, 0xffff0000,0xffff0000, false},
-  {R_BYTE,    0, 0, NA, false, NA, NAB, true,a29k_reloc,"BYTE",    true, 0x000000ff,0x000000ff, false},
-  {R_HWORD,   0, 1, NA, false, NA, NAB, true,a29k_reloc,"HWORD",   true, 0x0000ffff,0x0000ffff, false},
-  {R_WORD,    0, 2, NA, false, NA, NAB, true,a29k_reloc,"WORD",    true, 0xffffffff,0xffffffff, false},
+  {R_IREL,    0, 3, 32, true,  0, complain_overflow_signed,a29k_reloc,"IREL",    true, 0xffffffff,0xffffffff, false},
+  {R_IABS,    0, 3, 32, false, 0, complain_overflow_bitfield, a29k_reloc,"IABS",    true, 0xffffffff,0xffffffff, false},
+  {R_ILOHALF, 0, 3, 16, true,  0, complain_overflow_signed, a29k_reloc,"ILOHALF", true, 0x0000ffff,0x0000ffff, false},
+  {R_IHIHALF, 0, 3, 16, true,  16, complain_overflow_signed, a29k_reloc,"IHIHALF", true, 0xffff0000,0xffff0000, false},
+  {R_IHCONST, 0, 3, 16, true,  0, complain_overflow_signed, a29k_reloc,"IHCONST", true, 0xffff0000,0xffff0000, false},
+  {R_BYTE,    0, 0, 8, false, 0, complain_overflow_bitfield, a29k_reloc,"BYTE",    true, 0x000000ff,0x000000ff, false},
+  {R_HWORD,   0, 1, 16, false, 0, complain_overflow_bitfield, a29k_reloc,"HWORD",   true, 0x0000ffff,0x0000ffff, false},
+  {R_WORD,    0, 2, 32, false, 0, complain_overflow_bitfield, a29k_reloc,"WORD",    true, 0xffffffff,0xffffffff, false},
 };
-#undef NA
 
 #define BADMAG(x) A29KBADMAG(x)
 
@@ -274,7 +269,7 @@ static void DEFUN(reloc_processing,(relent,reloc, symbols, abfd, section) ,
       ptr = *(relent->sym_ptr_ptr);
 
       if (ptr 
-         && ptr->the_bfd == abfd               
+         && bfd_asymbol_bfd(ptr) == abfd               
 
          && ((ptr->flags & BSF_OLD_COMMON)== 0))       
       {                                                
@@ -292,49 +287,51 @@ static void DEFUN(reloc_processing,(relent,reloc, symbols, abfd, section) ,
 
 bfd_target a29kcoff_big_vec =
 {
-    "coff-a29k-big",           /* name */
-    bfd_target_coff_flavour,
-    true,                      /* data byte order is big */
-    true,                      /* header byte order is big */
-
-    (HAS_RELOC | EXEC_P |      /* object flags */
-     HAS_LINENO | HAS_DEBUG |
-     HAS_SYMS | HAS_LOCALS | DYNAMIC | WP_TEXT),
-
-    (SEC_HAS_CONTENTS | SEC_ALLOC /* section flags */
-     | SEC_LOAD | SEC_RELOC  
-     | SEC_READONLY ),
-    '/',                       /* ar_pad_char */
-    15,                                /* ar_max_namelen */
-    2,                         /* minimum section alignment */
-    /* data */
-    _do_getb64, _do_putb64, _do_getb32,
-    _do_putb32, _do_getb16, _do_putb16,
-    /* hdrs */
-    _do_getb64, _do_putb64, _do_getb32,
-    _do_putb32, _do_getb16, _do_putb16,
-
-  {
+  "coff-a29k-big",             /* name */
+  bfd_target_coff_flavour,
+  true,                                /* data byte order is big */
+  true,                                /* header byte order is big */
+
+  (HAS_RELOC | EXEC_P |                /* object flags */
+   HAS_LINENO | HAS_DEBUG |
+   HAS_SYMS | HAS_LOCALS | DYNAMIC | WP_TEXT),
+
+  (SEC_HAS_CONTENTS | SEC_ALLOC /* section flags */
+   | SEC_LOAD | SEC_RELOC  
+   | SEC_READONLY ),
+  '_',                         /* leading underscore */
+  '/',                         /* ar_pad_char */
+  15,                          /* ar_max_namelen */
+  2,                           /* minimum section alignment */
+  /* data */
+  bfd_getb64, bfd_getb_signed_64, bfd_putb64,
+     bfd_getb32, bfd_getb_signed_32,   bfd_putb32,
+     bfd_getb16, bfd_getb_signed_16, bfd_putb16,
+  /* hdrs */
+  bfd_getb64, bfd_getb_signed_64, bfd_putb64,
+     bfd_getb32, bfd_getb_signed_32,   bfd_putb32,
+     bfd_getb16, bfd_getb_signed_16, bfd_putb16,
+
+ {
            
-      _bfd_dummy_target,
-      coff_object_p,
-      bfd_generic_archive_p,
-      _bfd_dummy_target
-   },
 {
-      bfd_false,
-      coff_mkobject,
-      _bfd_generic_mkarchive,
-      bfd_false
-   },
 {
-      bfd_false,
-      coff_write_object_contents,
-      _bfd_write_archive_contents,
-      bfd_false
-   },
-
-    JUMP_TABLE(coff),
-    COFF_SWAP_TABLE
+   _bfd_dummy_target,
+   coff_object_p,
+   bfd_generic_archive_p,
+   _bfd_dummy_target
+  },
+ {
+   bfd_false,
+   coff_mkobject,
+   _bfd_generic_mkarchive,
+   bfd_false
+  },
+ {
+   bfd_false,
+   coff_write_object_contents,
+   _bfd_write_archive_contents,
+   bfd_false
+  },
+
+  JUMP_TABLE(coff),
+  COFF_SWAP_TABLE
  };
-
This page took 0.025528 seconds and 4 git commands to generate.