Remove tic80 support
[deliverable/binutils-gdb.git] / bfd / coffcode.h
index 4aa974136afc5ae9432d8dd2d3ce44212f41efb3..ac5312fdb03cf760629a4380786fe26e72f71bfa 100644 (file)
@@ -1,5 +1,5 @@
 /* Support for the generic parts of most COFF variants, for BFD.
 /* Support for the generic parts of most COFF variants, for BFD.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2019 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -32,19 +32,14 @@ SECTION
 
        Coff in all its varieties is implemented with a few common
        files and a number of implementation specific files. For
 
        Coff in all its varieties is implemented with a few common
        files and a number of implementation specific files. For
-       example, The 88k bcs coff format is implemented in the file
-       @file{coff-m88k.c}. This file @code{#include}s
-       @file{coff/m88k.h} which defines the external structure of the
-       coff format for the 88k, and @file{coff/internal.h} which
-       defines the internal structure. @file{coff-m88k.c} also
-       defines the relocations used by the 88k format
+       example, the i386 coff format is implemented in the file
+       @file{coff-i386.c}.  This file @code{#include}s
+       @file{coff/i386.h} which defines the external structure of the
+       coff format for the i386, and @file{coff/internal.h} which
+       defines the internal structure. @file{coff-i386.c} also
+       defines the relocations used by the i386 coff format
        @xref{Relocations}.
 
        @xref{Relocations}.
 
-       The Intel i960 processor version of coff is implemented in
-       @file{coff-i960.c}. This file has the same structure as
-       @file{coff-m88k.c}, except that it includes @file{coff/i960.h}
-       rather than @file{coff-m88k.h}.
-
 SUBSECTION
        Porting to a new version of coff
 
 SUBSECTION
        Porting to a new version of coff
 
@@ -97,15 +92,6 @@ SUBSUBSECTION
        Some of the Coff targets then also have additional routines in
        the target source file itself.
 
        Some of the Coff targets then also have additional routines in
        the target source file itself.
 
-       For example, @file{coff-i960.c} includes
-       @file{coff/internal.h} and @file{coff/i960.h}.  It then
-       defines a few constants, such as @code{I960}, and includes
-       @file{coffcode.h}.  Since the i960 has complex relocation
-       types, @file{coff-i960.c} also includes some code to
-       manipulate the i960 relocs.  This code is not in
-       @file{coffcode.h} because it would not be used by any other
-       target.
-
 SUBSUBSECTION
        Coff long section names
 
 SUBSUBSECTION
        Coff long section names
 
@@ -383,7 +369,7 @@ CODE_FRAGMENT
 #define COFFLONGSECTIONCATHELPER(x,y)    x ## y
 /* If the input macro Y is blank or '1', return an odd number; if it is
    '0', return an even number.  Result undefined in all other cases.  */
 #define COFFLONGSECTIONCATHELPER(x,y)    x ## y
 /* If the input macro Y is blank or '1', return an odd number; if it is
    '0', return an even number.  Result undefined in all other cases.  */
-#define BLANKOR1TOODD(y)                 COFFLONGSECTIONCATHELPER(1,y)
+#define BLANKOR1TOODD(y)                COFFLONGSECTIONCATHELPER(1,y)
 /* Defined to numerical 0 or 1 according to whether generation of long
    section names is disabled or enabled by default.  */
 #define COFF_ENABLE_LONG_SECTION_NAMES   (BLANKOR1TOODD(COFF_LONG_SECTION_NAMES) & 1)
 /* Defined to numerical 0 or 1 according to whether generation of long
    section names is disabled or enabled by default.  */
 #define COFF_ENABLE_LONG_SECTION_NAMES   (BLANKOR1TOODD(COFF_LONG_SECTION_NAMES) & 1)
@@ -437,8 +423,6 @@ static bfd_boolean coff_write_object_contents
   (bfd *) ATTRIBUTE_UNUSED;
 static bfd_boolean coff_set_section_contents
   (bfd *, asection *, const void *, file_ptr, bfd_size_type);
   (bfd *) ATTRIBUTE_UNUSED;
 static bfd_boolean coff_set_section_contents
   (bfd *, asection *, const void *, file_ptr, bfd_size_type);
-static void * buy_and_read
-  (bfd *, file_ptr, bfd_size_type);
 static bfd_boolean coff_slurp_line_table
   (bfd *, asection *);
 static bfd_boolean coff_slurp_symbol_table
 static bfd_boolean coff_slurp_line_table
   (bfd *, asection *);
 static bfd_boolean coff_slurp_symbol_table
@@ -548,7 +532,7 @@ sec_to_styp_flags (const char *sec_name, flagword sec_flags)
 #endif /* _LIT */
     }
   else if (CONST_STRNEQ (sec_name, DOT_DEBUG)
 #endif /* _LIT */
     }
   else if (CONST_STRNEQ (sec_name, DOT_DEBUG)
-           || CONST_STRNEQ (sec_name, DOT_ZDEBUG))
+          || CONST_STRNEQ (sec_name, DOT_ZDEBUG))
     {
       /* Handle the XCOFF debug section and DWARF2 debug sections.  */
       if (!sec_name[6])
     {
       /* Handle the XCOFF debug section and DWARF2 debug sections.  */
       if (!sec_name[6])
@@ -562,7 +546,7 @@ sec_to_styp_flags (const char *sec_name, flagword sec_flags)
     }
 #ifdef COFF_LONG_SECTION_NAMES
   else if (CONST_STRNEQ (sec_name, GNU_LINKONCE_WI)
     }
 #ifdef COFF_LONG_SECTION_NAMES
   else if (CONST_STRNEQ (sec_name, GNU_LINKONCE_WI)
-          || CONST_STRNEQ (sec_name, GNU_LINKONCE_WT))
+          || CONST_STRNEQ (sec_name, GNU_LINKONCE_WT))
     {
       styp_flags = STYP_DEBUG_INFO;
     }
     {
       styp_flags = STYP_DEBUG_INFO;
     }
@@ -589,11 +573,11 @@ sec_to_styp_flags (const char *sec_name, flagword sec_flags)
       int i;
 
       for (i = 0; i < XCOFF_DWSECT_NBR_NAMES; i++)
       int i;
 
       for (i = 0; i < XCOFF_DWSECT_NBR_NAMES; i++)
-        if (!strcmp (sec_name, xcoff_dwsect_names[i].name))
-          {
-            styp_flags = STYP_DWARF | xcoff_dwsect_names[i].flag;
-            break;
-          }
+       if (!strcmp (sec_name, xcoff_dwsect_names[i].name))
+         {
+           styp_flags = STYP_DWARF | xcoff_dwsect_names[i].flag;
+           break;
+         }
     }
 #endif
   /* Try and figure out what it should be */
     }
 #endif
   /* Try and figure out what it should be */
@@ -675,8 +659,8 @@ sec_to_styp_flags (const char *sec_name, flagword sec_flags)
   if (is_dbg)
     {
       sec_flags &= (SEC_LINK_ONCE | SEC_LINK_DUPLICATES_DISCARD
   if (is_dbg)
     {
       sec_flags &= (SEC_LINK_ONCE | SEC_LINK_DUPLICATES_DISCARD
-                   | SEC_LINK_DUPLICATES_SAME_CONTENTS
-                   | SEC_LINK_DUPLICATES_SAME_SIZE);
+                   | SEC_LINK_DUPLICATES_SAME_CONTENTS
+                   | SEC_LINK_DUPLICATES_SAME_SIZE);
       sec_flags |= SEC_DEBUGGING | SEC_READONLY;
     }
 
       sec_flags |= SEC_DEBUGGING | SEC_READONLY;
     }
 
@@ -706,7 +690,7 @@ sec_to_styp_flags (const char *sec_name, flagword sec_flags)
     styp_flags |= IMAGE_SCN_LNK_COMDAT;
   if ((sec_flags
        & (SEC_LINK_DUPLICATES_DISCARD | SEC_LINK_DUPLICATES_SAME_CONTENTS
     styp_flags |= IMAGE_SCN_LNK_COMDAT;
   if ((sec_flags
        & (SEC_LINK_DUPLICATES_DISCARD | SEC_LINK_DUPLICATES_SAME_CONTENTS
-          | SEC_LINK_DUPLICATES_SAME_SIZE)) != 0)
+         | SEC_LINK_DUPLICATES_SAME_SIZE)) != 0)
     styp_flags |= IMAGE_SCN_LNK_COMDAT;
 
   /* skip LINKER_CREATED */
     styp_flags |= IMAGE_SCN_LNK_COMDAT;
 
   /* skip LINKER_CREATED */
@@ -965,7 +949,7 @@ handle_COMDAT (bfd * abfd,
          /* PR 17512 file: 078-11867-0.004  */
          if (symname == NULL)
            {
          /* PR 17512 file: 078-11867-0.004  */
          if (symname == NULL)
            {
-             _bfd_error_handler (_("%B: unable to load COMDAT section name"),
+             _bfd_error_handler (_("%pB: unable to load COMDAT section name"),
                                  abfd);
              break;
            }
                                  abfd);
              break;
            }
@@ -997,7 +981,13 @@ handle_COMDAT (bfd * abfd,
                        || isym.n_sclass == C_EXT)
                       && BTYPE (isym.n_type) == T_NULL
                       && isym.n_value == 0))
                        || isym.n_sclass == C_EXT)
                       && BTYPE (isym.n_type) == T_NULL
                       && isym.n_value == 0))
-                 abort ();
+                 {
+                   /* Malformed input files can trigger this test.
+                      cf PR 21781.  */
+                   _bfd_error_handler (_("%pB: error: unexpected symbol '%s' in COMDAT section"),
+                                       abfd, symname);
+                   goto breakloop;
+                 }
 
                /* FIXME LATER: MSVC generates section names
                   like .text for comdats.  Gas generates
 
                /* FIXME LATER: MSVC generates section names
                   like .text for comdats.  Gas generates
@@ -1006,7 +996,7 @@ handle_COMDAT (bfd * abfd,
 
                if (isym.n_sclass == C_STAT && strcmp (name, symname) != 0)
                  /* xgettext:c-format */
 
                if (isym.n_sclass == C_STAT && strcmp (name, symname) != 0)
                  /* xgettext:c-format */
-                 _bfd_error_handler (_("%B: warning: COMDAT symbol '%s'"
+                 _bfd_error_handler (_("%pB: warning: COMDAT symbol '%s'"
                                        " does not match section name '%s'"),
                                      abfd, symname, name);
 
                                        " does not match section name '%s'"),
                                      abfd, symname, name);
 
@@ -1016,7 +1006,7 @@ handle_COMDAT (bfd * abfd,
                if (esym + bfd_coff_symesz (abfd) >= esymend)
                  {
                    /* xgettext:c-format */
                if (esym + bfd_coff_symesz (abfd) >= esymend)
                  {
                    /* xgettext:c-format */
-                   _bfd_error_handler (_("%B: warning: No symbol for"
+                   _bfd_error_handler (_("%pB: warning: no symbol for"
                                          " section '%s' found"),
                                        abfd, symname);
                    break;
                                          " section '%s' found"),
                                        abfd, symname);
                    break;
@@ -1184,6 +1174,11 @@ styp_to_sec_flags (bfd *abfd,
 #ifdef COFF_LONG_SECTION_NAMES
       || CONST_STRNEQ (name, GNU_LINKONCE_WI)
       || CONST_STRNEQ (name, GNU_LINKONCE_WT)
 #ifdef COFF_LONG_SECTION_NAMES
       || CONST_STRNEQ (name, GNU_LINKONCE_WI)
       || CONST_STRNEQ (name, GNU_LINKONCE_WT)
+      /* FIXME: These definitions ought to be in a header file.  */
+#define GNU_DEBUGLINK          ".gnu_debuglink"
+#define GNU_DEBUGALTLINK       ".gnu_debugaltlink"
+      || CONST_STRNEQ (name, GNU_DEBUGLINK)
+      || CONST_STRNEQ (name, GNU_DEBUGALTLINK)
 #endif
       || CONST_STRNEQ (name, ".stab"))
     is_dbg = TRUE;
 #endif
       || CONST_STRNEQ (name, ".stab"))
     is_dbg = TRUE;
@@ -1242,9 +1237,9 @@ styp_to_sec_flags (bfd *abfd,
             variable as this will allow some .sys files generate by
             other toolchains to be processed.  See bugzilla issue 196.  */
          /* xgettext:c-format */
             variable as this will allow some .sys files generate by
             other toolchains to be processed.  See bugzilla issue 196.  */
          /* xgettext:c-format */
-         _bfd_error_handler (_("%B: Warning: Ignoring section flag"
-                               " IMAGE_SCN_MEM_NOT_PAGED in section %s"),
-                             abfd, name);
+         _bfd_error_handler (_("%pB: warning: ignoring section flag"
+                               " %s in section %s"),
+                             abfd, "IMAGE_SCN_MEM_NOT_PAGED", name);
          break;
        case IMAGE_SCN_MEM_EXECUTE:
          sec_flags |= SEC_CODE;
          break;
        case IMAGE_SCN_MEM_EXECUTE:
          sec_flags |= SEC_CODE;
@@ -1311,7 +1306,7 @@ styp_to_sec_flags (bfd *abfd,
        {
          _bfd_error_handler
            /* xgettext:c-format */
        {
          _bfd_error_handler
            /* xgettext:c-format */
-           (_("%B (%s): Section flag %s (0x%x) ignored"),
+           (_("%pB (%s): section flag %s (%#lx) ignored"),
             abfd, name, unhandled, flag);
          result = FALSE;
        }
             abfd, name, unhandled, flag);
          result = FALSE;
        }
@@ -1451,19 +1446,19 @@ Special entry points for gdb to swap in coff symbol table parts:
 .
 .  bfd_boolean (*_bfd_coff_pointerize_aux_hook)
 .    (bfd *, combined_entry_type *, combined_entry_type *,
 .
 .  bfd_boolean (*_bfd_coff_pointerize_aux_hook)
 .    (bfd *, combined_entry_type *, combined_entry_type *,
-.           unsigned int, combined_entry_type *);
+.     unsigned int, combined_entry_type *);
 .
 .  bfd_boolean (*_bfd_coff_print_aux)
 .    (bfd *, FILE *, combined_entry_type *, combined_entry_type *,
 .
 .  bfd_boolean (*_bfd_coff_print_aux)
 .    (bfd *, FILE *, combined_entry_type *, combined_entry_type *,
-.           combined_entry_type *, unsigned int);
+.     combined_entry_type *, unsigned int);
 .
 .  void (*_bfd_coff_reloc16_extra_cases)
 .    (bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *,
 .
 .  void (*_bfd_coff_reloc16_extra_cases)
 .    (bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *,
-.          bfd_byte *, unsigned int *, unsigned int *);
+.     bfd_byte *, unsigned int *, unsigned int *);
 .
 .  int (*_bfd_coff_reloc16_estimate)
 .    (bfd *, asection *, arelent *, unsigned int,
 .
 .  int (*_bfd_coff_reloc16_estimate)
 .    (bfd *, asection *, arelent *, unsigned int,
-.           struct bfd_link_info *);
+.     struct bfd_link_info *);
 .
 .  enum coff_symbol_classification (*_bfd_coff_classify_symbol)
 .    (bfd *, struct internal_syment *);
 .
 .  enum coff_symbol_classification (*_bfd_coff_classify_symbol)
 .    (bfd *, struct internal_syment *);
@@ -1476,21 +1471,20 @@ Special entry points for gdb to swap in coff symbol table parts:
 .
 .  bfd_boolean (*_bfd_coff_relocate_section)
 .    (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
 .
 .  bfd_boolean (*_bfd_coff_relocate_section)
 .    (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
-.           struct internal_reloc *, struct internal_syment *, asection **);
+.     struct internal_reloc *, struct internal_syment *, asection **);
 .
 .  reloc_howto_type *(*_bfd_coff_rtype_to_howto)
 .    (bfd *, asection *, struct internal_reloc *,
 .
 .  reloc_howto_type *(*_bfd_coff_rtype_to_howto)
 .    (bfd *, asection *, struct internal_reloc *,
-.           struct coff_link_hash_entry *, struct internal_syment *,
-.           bfd_vma *);
+.     struct coff_link_hash_entry *, struct internal_syment *, bfd_vma *);
 .
 .  bfd_boolean (*_bfd_coff_adjust_symndx)
 .    (bfd *, struct bfd_link_info *, bfd *, asection *,
 .
 .  bfd_boolean (*_bfd_coff_adjust_symndx)
 .    (bfd *, struct bfd_link_info *, bfd *, asection *,
-.           struct internal_reloc *, bfd_boolean *);
+.     struct internal_reloc *, bfd_boolean *);
 .
 .  bfd_boolean (*_bfd_coff_link_add_one_symbol)
 .    (struct bfd_link_info *, bfd *, const char *, flagword,
 .
 .  bfd_boolean (*_bfd_coff_link_add_one_symbol)
 .    (struct bfd_link_info *, bfd *, const char *, flagword,
-.           asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean,
-.           struct bfd_link_hash_entry **);
+.     asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean,
+.     struct bfd_link_hash_entry **);
 .
 .  bfd_boolean (*_bfd_coff_link_output_has_begun)
 .    (bfd *, struct coff_final_link_info *);
 .
 .  bfd_boolean (*_bfd_coff_link_output_has_begun)
 .    (bfd *, struct coff_final_link_info *);
@@ -1600,7 +1594,7 @@ Special entry points for gdb to swap in coff symbol table parts:
 .   (abfd, file, base, symbol, aux, indaux))
 .
 .#define bfd_coff_reloc16_extra_cases(abfd, link_info, link_order,\
 .   (abfd, file, base, symbol, aux, indaux))
 .
 .#define bfd_coff_reloc16_extra_cases(abfd, link_info, link_order,\
-.                                     reloc, data, src_ptr, dst_ptr)\
+.                                    reloc, data, src_ptr, dst_ptr)\
 .  ((coff_backend_info (abfd)->_bfd_coff_reloc16_extra_cases)\
 .   (abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr))
 .
 .  ((coff_backend_info (abfd)->_bfd_coff_reloc16_extra_cases)\
 .   (abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr))
 .
@@ -1629,7 +1623,7 @@ Special entry points for gdb to swap in coff symbol table parts:
 .  ((coff_backend_info (abfd)->_bfd_coff_adjust_symndx)\
 .   (obfd, info, ibfd, sec, rel, adjustedp))
 .#define bfd_coff_link_add_one_symbol(info, abfd, name, flags, section,\
 .  ((coff_backend_info (abfd)->_bfd_coff_adjust_symndx)\
 .   (obfd, info, ibfd, sec, rel, adjustedp))
 .#define bfd_coff_link_add_one_symbol(info, abfd, name, flags, section,\
-.                                     value, string, cp, coll, hashp)\
+.                                    value, string, cp, coll, hashp)\
 .  ((coff_backend_info (abfd)->_bfd_coff_link_add_one_symbol)\
 .   (info, abfd, name, flags, section, value, string, cp, coll, hashp))
 .
 .  ((coff_backend_info (abfd)->_bfd_coff_link_add_one_symbol)\
 .   (info, abfd, name, flags, section, value, string, cp, coll, hashp))
 .
@@ -1659,19 +1653,6 @@ coff_bad_format_hook (bfd * abfd ATTRIBUTE_UNUSED, void * filehdr)
   if (BADMAG (*internal_f))
     return FALSE;
 
   if (BADMAG (*internal_f))
     return FALSE;
 
-  /* If the optional header is NULL or not the correct size then
-     quit; the only difference I can see between m88k dgux headers (MC88DMAGIC)
-     and Intel 960 readwrite headers (I960WRMAGIC) is that the
-     optional header is of a different size.
-
-     But the mips keeps extra stuff in it's opthdr, so dont check
-     when doing that.  */
-
-#if defined(M88) || defined(I960)
-  if (internal_f->f_opthdr != 0 && bfd_coff_aoutsz (abfd) != internal_f->f_opthdr)
-    return FALSE;
-#endif
-
   return TRUE;
 }
 
   return TRUE;
 }
 
@@ -1715,7 +1696,7 @@ coff_set_custom_section_alignment (bfd *abfd ATTRIBUTE_UNUSED,
 
   for (i = 0; i < table_size; ++i)
     {
 
   for (i = 0; i < table_size; ++i)
     {
-      const char *secname = bfd_get_section_name (abfd, section);
+      const char *secname = bfd_section_name (section);
 
       if (alignment_table[i].comparison_length == (unsigned int) -1
          ? strcmp (alignment_table[i].name, secname) == 0
 
       if (alignment_table[i].comparison_length == (unsigned int) -1
          ? strcmp (alignment_table[i].name, secname) == 0
@@ -1778,23 +1759,23 @@ coff_new_section_hook (bfd * abfd, asection * section)
 
 #ifdef RS6000COFF_C
   if (bfd_xcoff_text_align_power (abfd) != 0
 
 #ifdef RS6000COFF_C
   if (bfd_xcoff_text_align_power (abfd) != 0
-      && strcmp (bfd_get_section_name (abfd, section), ".text") == 0)
+      && strcmp (bfd_section_name (section), ".text") == 0)
     section->alignment_power = bfd_xcoff_text_align_power (abfd);
   else if (bfd_xcoff_data_align_power (abfd) != 0
     section->alignment_power = bfd_xcoff_text_align_power (abfd);
   else if (bfd_xcoff_data_align_power (abfd) != 0
-      && strcmp (bfd_get_section_name (abfd, section), ".data") == 0)
+      && strcmp (bfd_section_name (section), ".data") == 0)
     section->alignment_power = bfd_xcoff_data_align_power (abfd);
   else
     {
       int i;
 
       for (i = 0; i < XCOFF_DWSECT_NBR_NAMES; i++)
     section->alignment_power = bfd_xcoff_data_align_power (abfd);
   else
     {
       int i;
 
       for (i = 0; i < XCOFF_DWSECT_NBR_NAMES; i++)
-        if (strcmp (bfd_get_section_name (abfd, section),
-                    xcoff_dwsect_names[i].name) == 0)
-          {
-            section->alignment_power = 0;
-            sclass = C_DWARF;
-            break;
-          }
+       if (strcmp (bfd_section_name (section),
+                   xcoff_dwsect_names[i].name) == 0)
+         {
+           section->alignment_power = 0;
+           sclass = C_DWARF;
+           break;
+         }
     }
 #endif
 
     }
 #endif
 
@@ -1843,16 +1824,6 @@ coff_set_alignment_hook (bfd * abfd ATTRIBUTE_UNUSED,
   struct internal_scnhdr *hdr = (struct internal_scnhdr *) scnhdr;
   unsigned int i;
 
   struct internal_scnhdr *hdr = (struct internal_scnhdr *) scnhdr;
   unsigned int i;
 
-#ifdef I960
-  /* Extract ALIGN from 2**ALIGN stored in section header.  */
-  for (i = 0; i < 32; i++)
-    if ((1 << i) >= hdr->s_align)
-      break;
-#endif
-#ifdef TIC80COFF
-  /* TI tools puts the alignment power in bits 8-11.  */
-  i = (hdr->s_flags >> 8) & 0xF ;
-#endif
 #ifdef COFF_DECODE_ALIGNMENT
   i = COFF_DECODE_ALIGNMENT(hdr->s_flags);
 #endif
 #ifdef COFF_DECODE_ALIGNMENT
   i = COFF_DECODE_ALIGNMENT(hdr->s_flags);
 #endif
@@ -1946,7 +1917,7 @@ coff_set_alignment_hook (bfd * abfd ATTRIBUTE_UNUSED,
     }
   else if (hdr->s_nreloc == 0xffff)
     _bfd_error_handler
     }
   else if (hdr->s_nreloc == 0xffff)
     _bfd_error_handler
-      (_("%B: warning: claims to have 0xffff relocs, without overflow"),
+      (_("%pB: warning: claims to have 0xffff relocs, without overflow"),
        abfd);
 }
 #undef ALIGN_SET
        abfd);
 }
 #undef ALIGN_SET
@@ -1984,8 +1955,12 @@ coff_set_alignment_hook (bfd *abfd, asection *section, void * scnhdr)
 
 #else /* ! RS6000COFF_C */
 
 
 #else /* ! RS6000COFF_C */
 
-#define coff_set_alignment_hook \
-  ((void (*) (bfd *, asection *, void *)) bfd_void)
+static void
+coff_set_alignment_hook (bfd *abfd ATTRIBUTE_UNUSED,
+                        asection *section ATTRIBUTE_UNUSED,
+                        void *scnhdr ATTRIBUTE_UNUSED)
+{
+}
 
 #endif /* ! RS6000COFF_C */
 #endif /* ! COFF_WITH_PE */
 
 #endif /* ! RS6000COFF_C */
 #endif /* ! COFF_WITH_PE */
@@ -2131,12 +2106,20 @@ coff_set_arch_mach_hook (bfd *abfd, void * filehdr)
     case I386MAGIC:
     case I386PTXMAGIC:
     case I386AIXMAGIC:         /* Danbury PS/2 AIX C Compiler.  */
     case I386MAGIC:
     case I386PTXMAGIC:
     case I386AIXMAGIC:         /* Danbury PS/2 AIX C Compiler.  */
-    case LYNXCOFFMAGIC:                /* Shadows the m68k Lynx number below, sigh.  */
+    case LYNXCOFFMAGIC:
+    case I386_APPLE_MAGIC:
+    case I386_FREEBSD_MAGIC:
+    case I386_LINUX_MAGIC:
+    case I386_NETBSD_MAGIC:
       arch = bfd_arch_i386;
       break;
 #endif
 #ifdef AMD64MAGIC
     case AMD64MAGIC:
       arch = bfd_arch_i386;
       break;
 #endif
 #ifdef AMD64MAGIC
     case AMD64MAGIC:
+    case AMD64_APPLE_MAGIC:
+    case AMD64_FREEBSD_MAGIC:
+    case AMD64_LINUX_MAGIC:
+    case AMD64_NETBSD_MAGIC:
       arch = bfd_arch_i386;
       machine = bfd_mach_x86_64;
       break;
       arch = bfd_arch_i386;
       machine = bfd_mach_x86_64;
       break;
@@ -2173,30 +2156,6 @@ coff_set_arch_mach_hook (bfd *abfd, void * filehdr)
        }
       break;
 #endif
        }
       break;
 #endif
-#ifdef MC68MAGIC
-    case MC68MAGIC:
-    case M68MAGIC:
-#ifdef MC68KBCSMAGIC
-    case MC68KBCSMAGIC:
-#endif
-#ifdef APOLLOM68KMAGIC
-    case APOLLOM68KMAGIC:
-#endif
-#ifdef LYNXCOFFMAGIC
-    case LYNXCOFFMAGIC:
-#endif
-      arch = bfd_arch_m68k;
-      machine = bfd_mach_m68020;
-      break;
-#endif
-#ifdef MC88MAGIC
-    case MC88MAGIC:
-    case MC88DMAGIC:
-    case MC88OMAGIC:
-      arch = bfd_arch_m88k;
-      machine = 88100;
-      break;
-#endif
 #ifdef Z80MAGIC
     case Z80MAGIC:
       arch = bfd_arch_z80;
 #ifdef Z80MAGIC
     case Z80MAGIC:
       arch = bfd_arch_z80;
@@ -2230,47 +2189,6 @@ coff_set_arch_mach_hook (bfd *abfd, void * filehdr)
        }
       break;
 #endif
        }
       break;
 #endif
-#ifdef I860
-    case I860MAGIC:
-      arch = bfd_arch_i860;
-      break;
-#endif
-#ifdef I960
-#ifdef I960ROMAGIC
-    case I960ROMAGIC:
-    case I960RWMAGIC:
-      arch = bfd_arch_i960;
-      switch (F_I960TYPE & internal_f->f_flags)
-       {
-       default:
-       case F_I960CORE:
-         machine = bfd_mach_i960_core;
-         break;
-       case F_I960KB:
-         machine = bfd_mach_i960_kb_sb;
-         break;
-       case F_I960MC:
-         machine = bfd_mach_i960_mc;
-         break;
-       case F_I960XA:
-         machine = bfd_mach_i960_xa;
-         break;
-       case F_I960CA:
-         machine = bfd_mach_i960_ca;
-         break;
-       case F_I960KA:
-         machine = bfd_mach_i960_ka_sa;
-         break;
-       case F_I960JX:
-         machine = bfd_mach_i960_jx;
-         break;
-       case F_I960HX:
-         machine = bfd_mach_i960_hx;
-         break;
-       }
-      break;
-#endif
-#endif
 
 #ifdef RS6000COFF_C
 #ifdef XCOFF64
 
 #ifdef RS6000COFF_C
 #ifdef XCOFF64
@@ -2348,57 +2266,6 @@ coff_set_arch_mach_hook (bfd *abfd, void * filehdr)
       break;
 #endif
 
       break;
 #endif
 
-#ifdef WE32KMAGIC
-    case WE32KMAGIC:
-      arch = bfd_arch_we32k;
-      break;
-#endif
-
-#ifdef H8300MAGIC
-    case H8300MAGIC:
-      arch = bfd_arch_h8300;
-      machine = bfd_mach_h8300;
-      /* !! FIXME this probably isn't the right place for this.  */
-      abfd->flags |= BFD_IS_RELAXABLE;
-      break;
-#endif
-
-#ifdef H8300HMAGIC
-    case H8300HMAGIC:
-      arch = bfd_arch_h8300;
-      machine = bfd_mach_h8300h;
-      /* !! FIXME this probably isn't the right place for this.  */
-      abfd->flags |= BFD_IS_RELAXABLE;
-      break;
-#endif
-
-#ifdef H8300SMAGIC
-    case H8300SMAGIC:
-      arch = bfd_arch_h8300;
-      machine = bfd_mach_h8300s;
-      /* !! FIXME this probably isn't the right place for this.  */
-      abfd->flags |= BFD_IS_RELAXABLE;
-      break;
-#endif
-
-#ifdef H8300HNMAGIC
-    case H8300HNMAGIC:
-      arch = bfd_arch_h8300;
-      machine = bfd_mach_h8300hn;
-      /* !! FIXME this probably isn't the right place for this.  */
-      abfd->flags |= BFD_IS_RELAXABLE;
-      break;
-#endif
-
-#ifdef H8300SNMAGIC
-    case H8300SNMAGIC:
-      arch = bfd_arch_h8300;
-      machine = bfd_mach_h8300sn;
-      /* !! FIXME this probably isn't the right place for this.  */
-      abfd->flags |= BFD_IS_RELAXABLE;
-      break;
-#endif
-
 #ifdef SH_ARCH_MAGIC_BIG
     case SH_ARCH_MAGIC_BIG:
     case SH_ARCH_MAGIC_LITTLE:
 #ifdef SH_ARCH_MAGIC_BIG
     case SH_ARCH_MAGIC_BIG:
     case SH_ARCH_MAGIC_LITTLE:
@@ -2415,12 +2282,6 @@ coff_set_arch_mach_hook (bfd *abfd, void * filehdr)
       break;
 #endif
 
       break;
 #endif
 
-#ifdef H8500MAGIC
-    case H8500MAGIC:
-      arch = bfd_arch_h8500;
-      break;
-#endif
-
 #ifdef SPARCMAGIC
     case SPARCMAGIC:
 #ifdef LYNXCOFFMAGIC
 #ifdef SPARCMAGIC
     case SPARCMAGIC:
 #ifdef LYNXCOFFMAGIC
@@ -2462,31 +2323,19 @@ coff_set_arch_mach_hook (bfd *abfd, void * filehdr)
        default:
          arch = bfd_arch_obscure;
          _bfd_error_handler
        default:
          arch = bfd_arch_obscure;
          _bfd_error_handler
-           (_("Unrecognized TI COFF target id '0x%x'"),
+           (_("unrecognized TI COFF target id '0x%x'"),
             internal_f->f_target_id);
          break;
        }
       break;
 #endif
 
             internal_f->f_target_id);
          break;
        }
       break;
 #endif
 
-#ifdef TIC80_ARCH_MAGIC
-    case TIC80_ARCH_MAGIC:
-      arch = bfd_arch_tic80;
-      break;
-#endif
-
 #ifdef MCOREMAGIC
     case MCOREMAGIC:
       arch = bfd_arch_mcore;
       break;
 #endif
 
 #ifdef MCOREMAGIC
     case MCOREMAGIC:
       arch = bfd_arch_mcore;
       break;
 #endif
 
-#ifdef W65MAGIC
-    case W65MAGIC:
-      arch = bfd_arch_w65;
-      break;
-#endif
-
     default:                   /* Unreadable input file type.  */
       arch = bfd_arch_obscure;
       break;
     default:                   /* Unreadable input file type.  */
       arch = bfd_arch_obscure;
       break;
@@ -2496,20 +2345,16 @@ coff_set_arch_mach_hook (bfd *abfd, void * filehdr)
   return TRUE;
 }
 
   return TRUE;
 }
 
-#ifdef SYMNAME_IN_DEBUG
-
 static bfd_boolean
 static bfd_boolean
-symname_in_debug_hook (bfd * abfd ATTRIBUTE_UNUSED, struct internal_syment *sym)
+symname_in_debug_hook (bfd *abfd ATTRIBUTE_UNUSED,
+                      struct internal_syment *sym ATTRIBUTE_UNUSED)
 {
 {
+#ifdef SYMNAME_IN_DEBUG
   return SYMNAME_IN_DEBUG (sym) != 0;
   return SYMNAME_IN_DEBUG (sym) != 0;
-}
-
 #else
 #else
-
-#define symname_in_debug_hook \
-  (bfd_boolean (*) (bfd *, struct internal_syment *)) bfd_false
-
+  return FALSE;
 #endif
 #endif
+}
 
 #ifdef RS6000COFF_C
 
 
 #ifdef RS6000COFF_C
 
@@ -2551,31 +2396,7 @@ coff_pointerize_aux_hook (bfd *abfd ATTRIBUTE_UNUSED,
 }
 
 #else
 }
 
 #else
-#ifdef I960
-
-/* We don't want to pointerize bal entries.  */
-
-static bfd_boolean
-coff_pointerize_aux_hook (bfd *abfd ATTRIBUTE_UNUSED,
-                         combined_entry_type *table_base ATTRIBUTE_UNUSED,
-                         combined_entry_type *symbol,
-                         unsigned int indaux,
-                         combined_entry_type *aux ATTRIBUTE_UNUSED)
-{
-  /* Return TRUE if we don't want to pointerize this aux entry, which
-     is the case for the lastfirst aux entry for a C_LEAFPROC symbol.  */
-  return (indaux == 1
-         && symbol->is_sym
-         && (symbol->u.syment.n_sclass == C_LEAFPROC
-             || symbol->u.syment.n_sclass == C_LEAFSTAT
-             || symbol->u.syment.n_sclass == C_LEAFEXT));
-}
-
-#else /* ! I960 */
-
 #define coff_pointerize_aux_hook 0
 #define coff_pointerize_aux_hook 0
-
-#endif /* ! I960 */
 #endif /* ! RS6000COFF_C */
 
 /* Print an aux entry.  This returns TRUE if it has printed it.  */
 #endif /* ! RS6000COFF_C */
 
 /* Print an aux entry.  This returns TRUE if it has printed it.  */
@@ -2780,7 +2601,7 @@ coff_write_relocs (bfd * abfd, int first_undef)
                      {
                        bfd_set_error (bfd_error_bad_value);
                        /* xgettext:c-format */
                      {
                        bfd_set_error (bfd_error_bad_value);
                        /* xgettext:c-format */
-                       _bfd_error_handler (_("%B: reloc against a non-existent"
+                       _bfd_error_handler (_("%pB: reloc against a non-existent"
                                              " symbol index: %ld"),
                                            abfd, n.r_symndx);
                        return FALSE;
                                              " symbol index: %ld"),
                                            abfd, n.r_symndx);
                        return FALSE;
@@ -2855,32 +2676,6 @@ coff_set_flags (bfd * abfd,
       return TRUE;
 #endif
 
       return TRUE;
 #endif
 
-#ifdef I960ROMAGIC
-    case bfd_arch_i960:
-
-      {
-       unsigned flags;
-
-       *magicp = I960ROMAGIC;
-
-       switch (bfd_get_mach (abfd))
-         {
-         case bfd_mach_i960_core:  flags = F_I960CORE; break;
-         case bfd_mach_i960_kb_sb: flags = F_I960KB;   break;
-         case bfd_mach_i960_mc:    flags = F_I960MC;   break;
-         case bfd_mach_i960_xa:    flags = F_I960XA;   break;
-         case bfd_mach_i960_ca:    flags = F_I960CA;   break;
-         case bfd_mach_i960_ka_sa: flags = F_I960KA;   break;
-         case bfd_mach_i960_jx:    flags = F_I960JX;   break;
-         case bfd_mach_i960_hx:    flags = F_I960HX;   break;
-         default:                  return FALSE;
-         }
-       *flagsp = flags;
-       return TRUE;
-      }
-      break;
-#endif
-
 #ifdef TIC30MAGIC
     case bfd_arch_tic30:
       *magicp = TIC30MAGIC;
 #ifdef TIC30MAGIC
     case bfd_arch_tic30:
       *magicp = TIC30MAGIC;
@@ -2914,12 +2709,6 @@ coff_set_flags (bfd * abfd,
       return TRUE;
 #endif
 
       return TRUE;
 #endif
 
-#ifdef TIC80_ARCH_MAGIC
-    case bfd_arch_tic80:
-      *magicp = TIC80_ARCH_MAGIC;
-      return TRUE;
-#endif
-
 #ifdef ARMMAGIC
     case bfd_arch_arm:
 #ifdef ARM_WINCE
 #ifdef ARMMAGIC
     case bfd_arch_arm:
 #ifdef ARM_WINCE
@@ -2980,57 +2769,12 @@ coff_set_flags (bfd * abfd,
       return TRUE;
 #endif
 
       return TRUE;
 #endif
 
-#ifdef I860MAGIC
-    case bfd_arch_i860:
-      *magicp = I860MAGIC;
-      return TRUE;
-#endif
-
 #ifdef IA64MAGIC
     case bfd_arch_ia64:
       *magicp = IA64MAGIC;
       return TRUE;
 #endif
 
 #ifdef IA64MAGIC
     case bfd_arch_ia64:
       *magicp = IA64MAGIC;
       return TRUE;
 #endif
 
-#ifdef MC68MAGIC
-    case bfd_arch_m68k:
-#ifdef APOLLOM68KMAGIC
-      *magicp = APOLLO_COFF_VERSION_NUMBER;
-#else
-      /* NAMES_HAVE_UNDERSCORE may be defined by coff-u68k.c.  */
-#ifdef NAMES_HAVE_UNDERSCORE
-      *magicp = MC68KBCSMAGIC;
-#else
-      *magicp = MC68MAGIC;
-#endif
-#endif
-#ifdef LYNXOS
-      /* Just overwrite the usual value if we're doing Lynx.  */
-      *magicp = LYNXCOFFMAGIC;
-#endif
-      return TRUE;
-#endif
-
-#ifdef MC88MAGIC
-    case bfd_arch_m88k:
-      *magicp = MC88OMAGIC;
-      return TRUE;
-#endif
-
-#ifdef H8300MAGIC
-    case bfd_arch_h8300:
-      switch (bfd_get_mach (abfd))
-       {
-       case bfd_mach_h8300:   *magicp = H8300MAGIC;   return TRUE;
-       case bfd_mach_h8300h:  *magicp = H8300HMAGIC;  return TRUE;
-       case bfd_mach_h8300s:  *magicp = H8300SMAGIC;  return TRUE;
-       case bfd_mach_h8300hn: *magicp = H8300HNMAGIC; return TRUE;
-       case bfd_mach_h8300sn: *magicp = H8300SNMAGIC; return TRUE;
-       default: break;
-       }
-      break;
-#endif
-
 #ifdef SH_ARCH_MAGIC_BIG
     case bfd_arch_sh:
 #ifdef COFF_IMAGE_WITH_PE
 #ifdef SH_ARCH_MAGIC_BIG
     case bfd_arch_sh:
 #ifdef COFF_IMAGE_WITH_PE
@@ -3060,19 +2804,6 @@ coff_set_flags (bfd * abfd,
       return TRUE;
 #endif
 
       return TRUE;
 #endif
 
-#ifdef H8500MAGIC
-    case bfd_arch_h8500:
-      *magicp = H8500MAGIC;
-      return TRUE;
-      break;
-#endif
-
-#ifdef WE32KMAGIC
-    case bfd_arch_we32k:
-      *magicp = WE32KMAGIC;
-      return TRUE;
-#endif
-
 #ifdef RS6000COFF_C
     case bfd_arch_rs6000:
 #ifndef PPCMAGIC
 #ifdef RS6000COFF_C
     case bfd_arch_rs6000:
 #ifndef PPCMAGIC
@@ -3089,12 +2820,6 @@ coff_set_flags (bfd * abfd,
       return TRUE;
 #endif
 
       return TRUE;
 #endif
 
-#ifdef W65MAGIC
-    case bfd_arch_w65:
-      *magicp = W65MAGIC;
-      return TRUE;
-#endif
-
     default:                   /* Unknown architecture.  */
       /* Fall through to "return FALSE" below, to avoid
         "statement never reached" errors on the one below.  */
     default:                   /* Unknown architecture.  */
       /* Fall through to "return FALSE" below, to avoid
         "statement never reached" errors on the one below.  */
@@ -3145,10 +2870,8 @@ sort_by_secaddr (const void * arg1, const void * arg2)
 
 /* Calculate the file position for each section.  */
 
 
 /* Calculate the file position for each section.  */
 
-#ifndef I960
 #define ALIGN_SECTIONS_IN_FILE
 #define ALIGN_SECTIONS_IN_FILE
-#endif
-#if defined(TIC80COFF) || defined(TICOFF)
+#ifdef TICOFF
 #undef ALIGN_SECTIONS_IN_FILE
 #endif
 
 #undef ALIGN_SECTIONS_IN_FILE
 #endif
 
@@ -3183,7 +2906,7 @@ coff_compute_section_file_positions (bfd * abfd)
          bfd_set_error (bfd_error_file_too_big);
          _bfd_error_handler
            /* xgettext:c-format */
          bfd_set_error (bfd_error_file_too_big);
          _bfd_error_handler
            /* xgettext:c-format */
-           (_("%B: page size is too large (0x%x)"), abfd, page_size);
+           (_("%pB: page size is too large (0x%x)"), abfd, page_size);
          return FALSE;
        }
     }
          return FALSE;
        }
     }
@@ -3343,7 +3066,7 @@ coff_compute_section_file_positions (bfd * abfd)
       bfd_set_error (bfd_error_file_too_big);
       _bfd_error_handler
        /* xgettext:c-format */
       bfd_set_error (bfd_error_file_too_big);
       _bfd_error_handler
        /* xgettext:c-format */
-       (_("%B: too many sections (%d)"), abfd, target_index);
+       (_("%pB: too many sections (%d)"), abfd, target_index);
       return FALSE;
     }
 
       return FALSE;
     }
 
@@ -3388,9 +3111,7 @@ coff_compute_section_file_positions (bfd * abfd)
 #endif
 
       /* Align the sections in the file to the same boundary on
 #endif
 
       /* Align the sections in the file to the same boundary on
-        which they are aligned in virtual memory.  I960 doesn't
-        do this (FIXME) so we can stay in sync with Intel.  960
-        doesn't yet page from files...  */
+        which they are aligned in virtual memory.  */
 #ifdef ALIGN_SECTIONS_IN_FILE
       if ((abfd->flags & EXEC_P) != 0)
        {
 #ifdef ALIGN_SECTIONS_IN_FILE
       if ((abfd->flags & EXEC_P) != 0)
        {
@@ -3415,8 +3136,8 @@ coff_compute_section_file_positions (bfd * abfd)
             and the native linker doesn't try to align the text sections.
             For example:
 
             and the native linker doesn't try to align the text sections.
             For example:
 
-            0 .text         000054cc  10000128  10000128  00000128  2**5
-                             CONTENTS, ALLOC, LOAD, CODE
+            0 .text         000054cc  10000128  10000128  00000128  2**5
+                            CONTENTS, ALLOC, LOAD, CODE
          */
 
          if (!strcmp (current->name, _TEXT)
          */
 
          if (!strcmp (current->name, _TEXT)
@@ -3488,7 +3209,7 @@ coff_compute_section_file_positions (bfd * abfd)
         incremented in coff_set_section_contents.  This is right for
         SVR3.2.  */
       if (strcmp (current->name, _LIB) == 0)
         incremented in coff_set_section_contents.  This is right for
         SVR3.2.  */
       if (strcmp (current->name, _LIB) == 0)
-       (void) bfd_set_section_vma (abfd, current, 0);
+       bfd_set_section_vma (current, 0);
 #endif
 
 #ifdef ALIGN_SECTIONS_IN_FILE
 #endif
 
 #ifdef ALIGN_SECTIONS_IN_FILE
@@ -3764,8 +3485,8 @@ coff_write_object_contents (bfd * abfd)
                  bfd_set_error (bfd_error_file_too_big);
                  _bfd_error_handler
                    /* xgettext:c-format */
                  bfd_set_error (bfd_error_file_too_big);
                  _bfd_error_handler
                    /* xgettext:c-format */
-                   (_("%B: section %A: string table overflow at offset %ld"),
-                   abfd, current, string_size);
+                   (_("%pB: section %pA: string table overflow at offset %ld"),
+                   abfd, current, (unsigned long) string_size);
                  return FALSE;
                }
 
                  return FALSE;
                }
 
@@ -3854,17 +3575,25 @@ coff_write_object_contents (bfd * abfd)
       else if (!strcmp (current->name, _BSS))
        bss_sec = current;
 
       else if (!strcmp (current->name, _BSS))
        bss_sec = current;
 
-#ifdef I960
-      section.s_align = (current->alignment_power
-                        ? 1 << current->alignment_power
-                        : 0);
-#endif
-#ifdef TIC80COFF
-      /* TI COFF puts the alignment power in bits 8-11 of the flags.  */
-      section.s_flags |= (current->alignment_power & 0xF) << 8;
-#endif
 #ifdef COFF_ENCODE_ALIGNMENT
       COFF_ENCODE_ALIGNMENT(section, current->alignment_power);
 #ifdef COFF_ENCODE_ALIGNMENT
       COFF_ENCODE_ALIGNMENT(section, current->alignment_power);
+      if ((unsigned int)COFF_DECODE_ALIGNMENT(section.s_flags)
+         != current->alignment_power)
+       {
+         bfd_boolean warn = coff_data (abfd)->link_info
+           && !bfd_link_relocatable (coff_data (abfd)->link_info);
+
+         _bfd_error_handler
+           /* xgettext:c-format */
+           (_("%pB:%s section %s: alignment 2**%u not representable"),
+           abfd, warn ? " warning:" : "", current->name,
+           current->alignment_power);
+         if (!warn)
+           {
+             bfd_set_error (bfd_error_nonrepresentable_section);
+             return FALSE;
+           }
+       }
 #endif
 
 #ifdef COFF_IMAGE_WITH_PE
 #endif
 
 #ifdef COFF_IMAGE_WITH_PE
@@ -4070,9 +3799,6 @@ coff_write_object_contents (bfd * abfd)
      but it doesn't hurt to set it internally.  */
   internal_f.f_target_id = TI_TARGET_ID;
 #endif
      but it doesn't hurt to set it internally.  */
   internal_f.f_target_id = TI_TARGET_ID;
 #endif
-#ifdef TIC80_TARGET_ID
-  internal_f.f_target_id = TIC80_TARGET_ID;
-#endif
 
   /* FIXME, should do something about the other byte orders and
      architectures.  */
 
   /* FIXME, should do something about the other byte orders and
      architectures.  */
@@ -4100,45 +3826,6 @@ coff_write_object_contents (bfd * abfd)
     internal_a.magic = TICOFF_AOUT_MAGIC;
 #define __A_MAGIC_SET__
 #endif
     internal_a.magic = TICOFF_AOUT_MAGIC;
 #define __A_MAGIC_SET__
 #endif
-#ifdef TIC80COFF
-    internal_a.magic = TIC80_ARCH_MAGIC;
-#define __A_MAGIC_SET__
-#endif /* TIC80 */
-#ifdef I860
-    /* FIXME: What are the a.out magic numbers for the i860?  */
-    internal_a.magic = 0;
-#define __A_MAGIC_SET__
-#endif /* I860 */
-#ifdef I960
-    internal_a.magic = (magic == I960ROMAGIC ? NMAGIC : OMAGIC);
-#define __A_MAGIC_SET__
-#endif /* I960 */
-#if M88
-#define __A_MAGIC_SET__
-    internal_a.magic = PAGEMAGICBCS;
-#endif /* M88 */
-
-#if APOLLO_M68
-#define __A_MAGIC_SET__
-    internal_a.magic = APOLLO_COFF_VERSION_NUMBER;
-#endif
-
-#if defined(M68) || defined(WE32K) || defined(M68K)
-#define __A_MAGIC_SET__
-#if defined(LYNXOS)
-    internal_a.magic = LYNXCOFFMAGIC;
-#else
-#if defined(TARG_AUX)
-    internal_a.magic = (abfd->flags & D_PAGED ? PAGEMAGICPEXECPAGED :
-                       abfd->flags & WP_TEXT ? PAGEMAGICPEXECSWAPPED :
-                       PAGEMAGICEXECSWAPPED);
-#else
-#if defined (PAGEMAGICPEXECPAGED)
-    internal_a.magic = PAGEMAGICPEXECPAGED;
-#endif
-#endif /* TARG_AUX */
-#endif /* LYNXOS */
-#endif /* M68 || WE32K || M68K */
 
 #if defined(ARM)
 #define __A_MAGIC_SET__
 
 #if defined(ARM)
 #define __A_MAGIC_SET__
@@ -4305,7 +3992,7 @@ coff_write_object_contents (bfd * abfd)
       if (text_sec != NULL)
        {
          internal_a.o_sntext = text_sec->target_index;
       if (text_sec != NULL)
        {
          internal_a.o_sntext = text_sec->target_index;
-         internal_a.o_algntext = bfd_get_section_alignment (abfd, text_sec);
+         internal_a.o_algntext = bfd_section_alignment (text_sec);
        }
       else
        {
        }
       else
        {
@@ -4315,7 +4002,7 @@ coff_write_object_contents (bfd * abfd)
       if (data_sec != NULL)
        {
          internal_a.o_sndata = data_sec->target_index;
       if (data_sec != NULL)
        {
          internal_a.o_sndata = data_sec->target_index;
-         internal_a.o_algndata = bfd_get_section_alignment (abfd, data_sec);
+         internal_a.o_algndata = bfd_section_alignment (data_sec);
        }
       else
        {
        }
       else
        {
@@ -4463,7 +4150,7 @@ coff_set_section_contents (bfd * abfd,
       - a (four byte) word holding the length of this record, in words,
       - a word that always seems to be set to "2",
       - the path to a shared library, null-terminated and then padded
       - a (four byte) word holding the length of this record, in words,
       - a word that always seems to be set to "2",
       - the path to a shared library, null-terminated and then padded
-        to a whole word boundary.
+       to a whole word boundary.
 
       bfd_assert calls have been added to alert if an attempt is made
       to write a section which doesn't follow these assumptions.  The
 
       bfd_assert calls have been added to alert if an attempt is made
       to write a section which doesn't follow these assumptions.  The
@@ -4502,12 +4189,14 @@ coff_set_section_contents (bfd * abfd,
 }
 
 static void *
 }
 
 static void *
-buy_and_read (bfd *abfd, file_ptr where, bfd_size_type size)
+buy_and_read (bfd *abfd, file_ptr where,
+             bfd_size_type nmemb, bfd_size_type size)
 {
 {
-  void * area = bfd_alloc (abfd, size);
+  void *area = bfd_alloc2 (abfd, nmemb, size);
 
   if (!area)
     return NULL;
 
   if (!area)
     return NULL;
+  size *= nmemb;
   if (bfd_seek (abfd, where, SEEK_SET) != 0
       || bfd_bread (area, size, abfd) != size)
     return NULL;
   if (bfd_seek (abfd, where, SEEK_SET) != 0
       || bfd_bread (area, size, abfd) != size)
     return NULL;
@@ -4560,7 +4249,6 @@ coff_slurp_line_table (bfd *abfd, asection *asect)
 {
   LINENO *native_lineno;
   alent *lineno_cache;
 {
   LINENO *native_lineno;
   alent *lineno_cache;
-  bfd_size_type amt;
   unsigned int counter;
   alent *cache_ptr;
   bfd_vma prev_offset = 0;
   unsigned int counter;
   alent *cache_ptr;
   bfd_vma prev_offset = 0;
@@ -4570,19 +4258,32 @@ coff_slurp_line_table (bfd *abfd, asection *asect)
   bfd_boolean have_func;
   bfd_boolean ret = TRUE;
 
   bfd_boolean have_func;
   bfd_boolean ret = TRUE;
 
+  if (asect->lineno_count == 0)
+    return TRUE;
+
   BFD_ASSERT (asect->lineno == NULL);
 
   BFD_ASSERT (asect->lineno == NULL);
 
-  amt = ((bfd_size_type) asect->lineno_count + 1) * sizeof (alent);
-  lineno_cache = (alent *) bfd_alloc (abfd, amt);
+  if (asect->lineno_count > asect->size)
+    {
+      _bfd_error_handler
+       (_("%pB: warning: line number count (%#lx) exceeds section size (%#lx)"),
+        abfd, (unsigned long) asect->lineno_count, (unsigned long) asect->size);
+      return FALSE;
+    }
+
+  lineno_cache = (alent *) bfd_alloc2 (abfd,
+                                      (bfd_size_type) asect->lineno_count + 1,
+                                      sizeof (alent));
   if (lineno_cache == NULL)
     return FALSE;
 
   if (lineno_cache == NULL)
     return FALSE;
 
-  amt = (bfd_size_type) bfd_coff_linesz (abfd) * asect->lineno_count;
-  native_lineno = (LINENO *) buy_and_read (abfd, asect->line_filepos, amt);
+  native_lineno = (LINENO *) buy_and_read (abfd, asect->line_filepos,
+                                          asect->lineno_count,
+                                          bfd_coff_linesz (abfd));
   if (native_lineno == NULL)
     {
       _bfd_error_handler
   if (native_lineno == NULL)
     {
       _bfd_error_handler
-       (_("%B: warning: line number table read failed"), abfd);
+       (_("%pB: warning: line number table read failed"), abfd);
       bfd_release (abfd, lineno_cache);
       return FALSE;
     }
       bfd_release (abfd, lineno_cache);
       return FALSE;
     }
@@ -4607,7 +4308,7 @@ coff_slurp_line_table (bfd *abfd, asection *asect)
       if (cache_ptr->line_number == 0)
        {
          combined_entry_type * ent;
       if (cache_ptr->line_number == 0)
        {
          combined_entry_type * ent;
-         bfd_vma symndx;
+         unsigned long symndx;
          coff_symbol_type *sym;
 
          have_func = FALSE;
          coff_symbol_type *sym;
 
          have_func = FALSE;
@@ -4616,8 +4317,8 @@ coff_slurp_line_table (bfd *abfd, asection *asect)
            {
              _bfd_error_handler
                /* xgettext:c-format */
            {
              _bfd_error_handler
                /* xgettext:c-format */
-               (_("%B: warning: illegal symbol index 0x%lx in line number entry %d"),
-                abfd, (long) symndx, counter);
+               (_("%pB: warning: illegal symbol index 0x%lx in line number entry %d"),
+                abfd, symndx, counter);
              cache_ptr->line_number = -1;
              ret = FALSE;
              continue;
              cache_ptr->line_number = -1;
              ret = FALSE;
              continue;
@@ -4630,8 +4331,8 @@ coff_slurp_line_table (bfd *abfd, asection *asect)
            {
              _bfd_error_handler
                /* xgettext:c-format */
            {
              _bfd_error_handler
                /* xgettext:c-format */
-               (_("%B: warning: illegal symbol index 0x%lx in line number entry %d"),
-                abfd, (long) symndx, counter);
+               (_("%pB: warning: illegal symbol index 0x%lx in line number entry %d"),
+                abfd, symndx, counter);
              cache_ptr->line_number = -1;
              ret = FALSE;
              continue;
              cache_ptr->line_number = -1;
              ret = FALSE;
              continue;
@@ -4644,7 +4345,7 @@ coff_slurp_line_table (bfd *abfd, asection *asect)
            {
              _bfd_error_handler
                /* xgettext:c-format */
            {
              _bfd_error_handler
                /* xgettext:c-format */
-               (_("%B: warning: illegal symbol in line number entry %d"),
+               (_("%pB: warning: illegal symbol in line number entry %d"),
                 abfd, counter);
              cache_ptr->line_number = -1;
              ret = FALSE;
                 abfd, counter);
              cache_ptr->line_number = -1;
              ret = FALSE;
@@ -4657,7 +4358,7 @@ coff_slurp_line_table (bfd *abfd, asection *asect)
          if (sym->lineno != NULL)
            _bfd_error_handler
              /* xgettext:c-format */
          if (sym->lineno != NULL)
            _bfd_error_handler
              /* xgettext:c-format */
-             (_("%B: warning: duplicate line number information for `%s'"),
+             (_("%pB: warning: duplicate line number information for `%s'"),
               abfd, bfd_asymbol_name (&sym->symbol));
 
          sym->lineno = cache_ptr;
               abfd, bfd_asymbol_name (&sym->symbol));
 
          sym->lineno = cache_ptr;
@@ -4670,8 +4371,7 @@ coff_slurp_line_table (bfd *abfd, asection *asect)
           PR 17521: file: 078-10659-0.004.  */
        continue;
       else
           PR 17521: file: 078-10659-0.004.  */
        continue;
       else
-       cache_ptr->u.offset = (dst.l_addr.l_paddr
-                              - bfd_section_vma (abfd, asect));
+       cache_ptr->u.offset = dst.l_addr.l_paddr - bfd_section_vma (asect);
       cache_ptr++;
     }
 
       cache_ptr++;
     }
 
@@ -4687,7 +4387,7 @@ coff_slurp_line_table (bfd *abfd, asection *asect)
       alent *n_lineno_cache;
 
       /* Create a table of functions.  */
       alent *n_lineno_cache;
 
       /* Create a table of functions.  */
-      func_table = (alent **) bfd_alloc (abfd, nbr_func * sizeof (alent *));
+      func_table = (alent **) bfd_alloc2 (abfd, nbr_func, sizeof (alent *));
       if (func_table != NULL)
        {
          alent **p = func_table;
       if (func_table != NULL)
        {
          alent **p = func_table;
@@ -4703,8 +4403,8 @@ coff_slurp_line_table (bfd *abfd, asection *asect)
          qsort (func_table, nbr_func, sizeof (alent *), coff_sort_func_alent);
 
          /* Create the new sorted table.  */
          qsort (func_table, nbr_func, sizeof (alent *), coff_sort_func_alent);
 
          /* Create the new sorted table.  */
-         amt = (bfd_size_type) asect->lineno_count * sizeof (alent);
-         n_lineno_cache = (alent *) bfd_alloc (abfd, amt);
+         n_lineno_cache = (alent *) bfd_alloc2 (abfd, asect->lineno_count,
+                                                sizeof (alent));
          if (n_lineno_cache != NULL)
            {
              alent *n_cache_ptr = n_lineno_cache;
          if (n_lineno_cache != NULL)
            {
              alent *n_cache_ptr = n_lineno_cache;
@@ -4724,9 +4424,9 @@ coff_slurp_line_table (bfd *abfd, asection *asect)
                    *n_cache_ptr++ = *old_ptr++;
                  while (old_ptr->line_number != 0);
                }
                    *n_cache_ptr++ = *old_ptr++;
                  while (old_ptr->line_number != 0);
                }
-             BFD_ASSERT ((bfd_size_type) (n_cache_ptr - n_lineno_cache) == (amt / sizeof (alent)));
 
 
-             memcpy (lineno_cache, n_lineno_cache, amt);
+             memcpy (lineno_cache, n_lineno_cache,
+                     asect->lineno_count * sizeof (alent));
            }
          else
            ret = FALSE;
            }
          else
            ret = FALSE;
@@ -4749,7 +4449,6 @@ coff_slurp_symbol_table (bfd * abfd)
   combined_entry_type *native_symbols;
   coff_symbol_type *cached_area;
   unsigned int *table_ptr;
   combined_entry_type *native_symbols;
   coff_symbol_type *cached_area;
   unsigned int *table_ptr;
-  bfd_size_type amt;
   unsigned int number_of_symbols = 0;
   bfd_boolean ret = TRUE;
 
   unsigned int number_of_symbols = 0;
   bfd_boolean ret = TRUE;
 
@@ -4761,15 +4460,14 @@ coff_slurp_symbol_table (bfd * abfd)
     return FALSE;
 
   /* Allocate enough room for all the symbols in cached form.  */
     return FALSE;
 
   /* Allocate enough room for all the symbols in cached form.  */
-  amt = obj_raw_syment_count (abfd);
-  amt *= sizeof (coff_symbol_type);
-  cached_area = (coff_symbol_type *) bfd_alloc (abfd, amt);
+  cached_area = (coff_symbol_type *) bfd_alloc2 (abfd,
+                                                obj_raw_syment_count (abfd),
+                                                sizeof (coff_symbol_type));
   if (cached_area == NULL)
     return FALSE;
 
   if (cached_area == NULL)
     return FALSE;
 
-  amt = obj_raw_syment_count (abfd);
-  amt *= sizeof (unsigned int);
-  table_ptr = (unsigned int *) bfd_zalloc (abfd, amt);
+  table_ptr = (unsigned int *) bfd_zalloc2 (abfd, obj_raw_syment_count (abfd),
+                                           sizeof (unsigned int));
 
   if (table_ptr == NULL)
     return FALSE;
 
   if (table_ptr == NULL)
     return FALSE;
@@ -4798,11 +4496,6 @@ coff_slurp_symbol_table (bfd * abfd)
 
          switch (src->u.syment.n_sclass)
            {
 
          switch (src->u.syment.n_sclass)
            {
-#ifdef I960
-           case C_LEAFEXT:
-             /* Fall through to next case.  */
-#endif
-
            case C_EXT:
            case C_WEAKEXT:
 #if defined ARM
            case C_EXT:
            case C_WEAKEXT:
 #if defined ARM
@@ -4896,17 +4589,14 @@ coff_slurp_symbol_table (bfd * abfd)
              break;
 
            case C_STAT:         /* Static.  */
              break;
 
            case C_STAT:         /* Static.  */
-#ifdef I960
-           case C_LEAFSTAT:     /* Static leaf procedure.  */
-#endif
 #if defined ARM
            case C_THUMBSTAT:    /* Thumb static.  */
            case C_THUMBLABEL:   /* Thumb label.  */
            case C_THUMBSTATFUNC:/* Thumb static function.  */
 #endif
 #ifdef RS6000COFF_C
 #if defined ARM
            case C_THUMBSTAT:    /* Thumb static.  */
            case C_THUMBLABEL:   /* Thumb label.  */
            case C_THUMBSTATFUNC:/* Thumb static function.  */
 #endif
 #ifdef RS6000COFF_C
-            case C_DWARF:       /* A label in a dwarf section.  */
-            case C_INFO:        /* A label in a comment section.  */
+           case C_DWARF:        /* A label in a dwarf section.  */
+           case C_INFO:         /* A label in a comment section.  */
 #endif
            case C_LABEL:        /* Label.  */
              if (src->u.syment.n_scnum == N_DEBUG)
 #endif
            case C_LABEL:        /* Label.  */
              if (src->u.syment.n_scnum == N_DEBUG)
@@ -4936,11 +4626,6 @@ coff_slurp_symbol_table (bfd * abfd)
            case C_REGPARM:     /* Register parameter.  */
            case C_REG:         /* register variable.  */
              /* C_AUTOARG conflicts with TI COFF C_UEXT.  */
            case C_REGPARM:     /* Register parameter.  */
            case C_REG:         /* register variable.  */
              /* C_AUTOARG conflicts with TI COFF C_UEXT.  */
-#if !defined (TIC80COFF) && !defined (TICOFF)
-#ifdef C_AUTOARG
-           case C_AUTOARG:     /* 960-specific storage class.  */
-#endif
-#endif
            case C_TPDEF:       /* Type definition.  */
            case C_ARG:
            case C_AUTO:        /* Automatic variable.  */
            case C_TPDEF:       /* Type definition.  */
            case C_ARG:
            case C_AUTO:        /* Automatic variable.  */
@@ -5055,9 +4740,9 @@ coff_slurp_symbol_table (bfd * abfd)
                  && src->u.syment.n_scnum == 0)
                break;
 #ifdef RS6000COFF_C
                  && src->u.syment.n_scnum == 0)
                break;
 #ifdef RS6000COFF_C
-              /* XCOFF specific: deleted entry.  */
-              if (src->u.syment.n_value == C_NULL_VALUE)
-                break;
+             /* XCOFF specific: deleted entry.  */
+             if (src->u.syment.n_value == C_NULL_VALUE)
+               break;
 #endif
              /* Fall through.  */
            case C_EXTDEF:      /* External definition.  */
 #endif
              /* Fall through.  */
            case C_EXTDEF:      /* External definition.  */
@@ -5071,14 +4756,14 @@ coff_slurp_symbol_table (bfd * abfd)
            case C_ALIAS:       /* Duplicate tag.  */
 #endif
              /* New storage classes for TI COFF.  */
            case C_ALIAS:       /* Duplicate tag.  */
 #endif
              /* New storage classes for TI COFF.  */
-#if defined(TIC80COFF) || defined(TICOFF)
+#ifdef TICOFF
            case C_UEXT:        /* Tentative external definition.  */
 #endif
            case C_EXTLAB:      /* External load time label.  */
            default:
              _bfd_error_handler
                /* xgettext:c-format */
            case C_UEXT:        /* Tentative external definition.  */
 #endif
            case C_EXTLAB:      /* External load time label.  */
            default:
              _bfd_error_handler
                /* xgettext:c-format */
-               (_("%B: Unrecognized storage class %d for %s symbol `%s'"),
+               (_("%pB: unrecognized storage class %d for %s symbol `%s'"),
                 abfd, src->u.syment.n_sclass,
                 dst->symbol.section->name, dst->symbol.name);
              ret = FALSE;
                 abfd, src->u.syment.n_sclass,
                 dst->symbol.section->name, dst->symbol.name);
              ret = FALSE;
@@ -5104,7 +4789,7 @@ coff_slurp_symbol_table (bfd * abfd)
   obj_symbols (abfd) = cached_area;
   obj_raw_syments (abfd) = native_symbols;
 
   obj_symbols (abfd) = cached_area;
   obj_raw_syments (abfd) = native_symbols;
 
-  bfd_get_symcount (abfd) = number_of_symbols;
+  abfd->symcount = number_of_symbols;
   obj_convert (abfd) = table_ptr;
   /* Slurp the line tables for each section too.  */
   {
   obj_convert (abfd) = table_ptr;
   /* Slurp the line tables for each section too.  */
   {
@@ -5136,9 +4821,6 @@ coff_classify_symbol (bfd *abfd,
     {
     case C_EXT:
     case C_WEAKEXT:
     {
     case C_EXT:
     case C_WEAKEXT:
-#ifdef I960
-    case C_LEAFEXT:
-#endif
 #ifdef ARM
     case C_THUMBEXT:
     case C_THUMBEXTFUNC:
 #ifdef ARM
     case C_THUMBEXT:
     case C_THUMBEXTFUNC:
@@ -5179,12 +4861,12 @@ coff_classify_symbol (bfd *abfd,
        {
          asection *sec;
          char * name;
        {
          asection *sec;
          char * name;
-         char buf[SYMNMLEN + 1];
+         char buf[SYMNMLEN + 1];
 
          name = _bfd_coff_internal_syment_name (abfd, syment, buf)
 
          name = _bfd_coff_internal_syment_name (abfd, syment, buf)
-         sec = coff_section_from_bfd_index (abfd, syment->n_scnum);
+         sec = coff_section_from_bfd_index (abfd, syment->n_scnum);
          if (sec != NULL && name != NULL
          if (sec != NULL && name != NULL
-             && (strcmp (bfd_get_section_name (abfd, sec), name) == 0))
+             && (strcmp (bfd_section_name (sec), name) == 0))
            return COFF_SYMBOL_PE_SECTION;
        }
 #endif
            return COFF_SYMBOL_PE_SECTION;
        }
 #endif
@@ -5211,7 +4893,7 @@ coff_classify_symbol (bfd *abfd,
 
       _bfd_error_handler
        /* xgettext:c-format */
 
       _bfd_error_handler
        /* xgettext:c-format */
-       (_("warning: %B: local symbol `%s' has no section"),
+       (_("warning: %pB: local symbol `%s' has no section"),
         abfd, _bfd_coff_internal_syment_name (abfd, syment, buf));
     }
 
         abfd, _bfd_coff_internal_syment_name (abfd, syment, buf));
     }
 
@@ -5240,9 +4922,8 @@ SUBSUBSECTION
 
        o The reloc index is turned into a pointer to a howto
        structure, in a back end specific way. For instance, the 386
 
        o The reloc index is turned into a pointer to a howto
        structure, in a back end specific way. For instance, the 386
-       and 960 use the @code{r_type} to directly produce an index
-       into a howto table vector; the 88k subtracts a number from the
-       @code{r_type} field and creates an addend field.
+       uses the @code{r_type} to directly produce an index
+       into a howto table vector.
 */
 
 #ifndef CALC_ADDEND
 */
 
 #ifndef CALC_ADDEND
@@ -5274,7 +4955,6 @@ coff_slurp_reloc_table (bfd * abfd, sec_ptr asect, asymbol ** symbols)
   arelent *reloc_cache;
   arelent *cache_ptr;
   unsigned int idx;
   arelent *reloc_cache;
   arelent *cache_ptr;
   unsigned int idx;
-  bfd_size_type amt;
 
   if (asect->relocation)
     return TRUE;
 
   if (asect->relocation)
     return TRUE;
@@ -5285,10 +4965,11 @@ coff_slurp_reloc_table (bfd * abfd, sec_ptr asect, asymbol ** symbols)
   if (!coff_slurp_symbol_table (abfd))
     return FALSE;
 
   if (!coff_slurp_symbol_table (abfd))
     return FALSE;
 
-  amt = (bfd_size_type) bfd_coff_relsz (abfd) * asect->reloc_count;
-  native_relocs = (RELOC *) buy_and_read (abfd, asect->rel_filepos, amt);
-  amt = (bfd_size_type) asect->reloc_count * sizeof (arelent);
-  reloc_cache = (arelent *) bfd_alloc (abfd, amt);
+  native_relocs = (RELOC *) buy_and_read (abfd, asect->rel_filepos,
+                                         asect->reloc_count,
+                                         bfd_coff_relsz (abfd));
+  reloc_cache = (arelent *) bfd_alloc2 (abfd, asect->reloc_count,
+                                       sizeof (arelent));
 
   if (reloc_cache == NULL || native_relocs == NULL)
     return FALSE;
 
   if (reloc_cache == NULL || native_relocs == NULL)
     return FALSE;
@@ -5312,14 +4993,14 @@ coff_slurp_reloc_table (bfd * abfd, sec_ptr asect, asymbol ** symbols)
 #else
       cache_ptr->address = dst.r_vaddr;
 
 #else
       cache_ptr->address = dst.r_vaddr;
 
-      if (dst.r_symndx != -1)
+      if (dst.r_symndx != -1 && symbols != NULL)
        {
          if (dst.r_symndx < 0 || dst.r_symndx >= obj_conv_table_size (abfd))
            {
              _bfd_error_handler
                /* xgettext:c-format */
        {
          if (dst.r_symndx < 0 || dst.r_symndx >= obj_conv_table_size (abfd))
            {
              _bfd_error_handler
                /* xgettext:c-format */
-               (_("%B: warning: illegal symbol index %ld in relocs"),
-                abfd, (long) dst.r_symndx);
+               (_("%pB: warning: illegal symbol index %ld in relocs"),
+                abfd, dst.r_symndx);
              cache_ptr->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr;
              ptr = NULL;
            }
              cache_ptr->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr;
              ptr = NULL;
            }
@@ -5358,8 +5039,8 @@ coff_slurp_reloc_table (bfd * abfd, sec_ptr asect, asymbol ** symbols)
        {
          _bfd_error_handler
            /* xgettext:c-format */
        {
          _bfd_error_handler
            /* xgettext:c-format */
-           (_("%B: illegal relocation type %d at address 0x%lx"),
-            abfd, dst.r_type, (long) dst.r_vaddr);
+           (_("%pB: illegal relocation type %d at address %#" PRIx64),
+            abfd, dst.r_type, (uint64_t) dst.r_vaddr);
          bfd_set_error (bfd_error_bad_value);
          return FALSE;
        }
          bfd_set_error (bfd_error_bad_value);
          return FALSE;
        }
@@ -5842,6 +5523,9 @@ coff_bigobj_swap_aux_in (bfd *abfd,
   AUXENT_BIGOBJ *ext = (AUXENT_BIGOBJ *) ext1;
   union internal_auxent *in = (union internal_auxent *) in1;
 
   AUXENT_BIGOBJ *ext = (AUXENT_BIGOBJ *) ext1;
   union internal_auxent *in = (union internal_auxent *) in1;
 
+  /* Make sure that all fields in the aux structure are
+     initialised.  */
+  memset (in, 0, sizeof * in);
   switch (in_class)
     {
     case C_FILE:
   switch (in_class)
     {
     case C_FILE:
@@ -6002,7 +5686,7 @@ static bfd_coff_backend_data bigobj_swap_table =
 #endif
 
 #ifndef coff_bfd_is_target_special_symbol
 #endif
 
 #ifndef coff_bfd_is_target_special_symbol
-#define coff_bfd_is_target_special_symbol   ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
+#define coff_bfd_is_target_special_symbol   _bfd_bool_bfd_asymbol_false
 #endif
 
 #ifndef coff_read_minisymbols
 #endif
 
 #ifndef coff_read_minisymbols
@@ -6047,6 +5731,10 @@ static bfd_coff_backend_data bigobj_swap_table =
 #define coff_bfd_is_group_section          bfd_generic_is_group_section
 #endif
 
 #define coff_bfd_is_group_section          bfd_generic_is_group_section
 #endif
 
+#ifndef coff_bfd_group_name
+#define coff_bfd_group_name                bfd_coff_group_name
+#endif
+
 #ifndef coff_bfd_discard_group
 #define coff_bfd_discard_group             bfd_generic_discard_group
 #endif
 #ifndef coff_bfd_discard_group
 #define coff_bfd_discard_group             bfd_generic_discard_group
 #endif
@@ -6060,6 +5748,10 @@ static bfd_coff_backend_data bigobj_swap_table =
 #define coff_bfd_define_common_symbol      bfd_generic_define_common_symbol
 #endif
 
 #define coff_bfd_define_common_symbol      bfd_generic_define_common_symbol
 #endif
 
+#ifndef coff_bfd_link_hide_symbol
+#define coff_bfd_link_hide_symbol          _bfd_generic_link_hide_symbol
+#endif
+
 #ifndef coff_bfd_define_start_stop
 #define coff_bfd_define_start_stop         bfd_generic_define_start_stop
 #endif
 #ifndef coff_bfd_define_start_stop
 #define coff_bfd_define_start_stop         bfd_generic_define_start_stop
 #endif
@@ -6091,14 +5783,24 @@ const bfd_target VAR =                                                  \
   bfd_getb32, bfd_getb_signed_32, bfd_putb32,                          \
   bfd_getb16, bfd_getb_signed_16, bfd_putb16,                          \
                                                                        \
   bfd_getb32, bfd_getb_signed_32, bfd_putb32,                          \
   bfd_getb16, bfd_getb_signed_16, bfd_putb16,                          \
                                                                        \
-       /* bfd_check_format.  */                                        \
-  { _bfd_dummy_target, coff_object_p, bfd_generic_archive_p,           \
-    _bfd_dummy_target },                                               \
-       /* bfd_set_format.  */                                          \
-  { bfd_false, coff_mkobject, _bfd_generic_mkarchive, bfd_false },     \
-       /* bfd_write_contents.  */                                      \
-  { bfd_false, coff_write_object_contents, _bfd_write_archive_contents,        \
-    bfd_false },                                                       \
+  {                            /* bfd_check_format.  */                \
+    _bfd_dummy_target,                                                 \
+    coff_object_p,                                                     \
+    bfd_generic_archive_p,                                             \
+    _bfd_dummy_target                                                  \
+  },                                                                   \
+  {                            /* bfd_set_format.  */                  \
+    _bfd_bool_bfd_false_error,                                         \
+    coff_mkobject,                                                     \
+    _bfd_generic_mkarchive,                                            \
+    _bfd_bool_bfd_false_error                                          \
+  },                                                                   \
+  {                            /* bfd_write_contents.  */              \
+    _bfd_bool_bfd_false_error,                                         \
+    coff_write_object_contents,                                                \
+    _bfd_write_archive_contents,                                       \
+    _bfd_bool_bfd_false_error                                          \
+  },                                                                   \
                                                                        \
   BFD_JUMP_TABLE_GENERIC (coff),                                       \
   BFD_JUMP_TABLE_COPY (coff),                                          \
                                                                        \
   BFD_JUMP_TABLE_GENERIC (coff),                                       \
   BFD_JUMP_TABLE_COPY (coff),                                          \
@@ -6142,14 +5844,24 @@ const bfd_target VAR =                                                  \
   bfd_getb32, bfd_getb_signed_32, bfd_putb32,                          \
   bfd_getb16, bfd_getb_signed_16, bfd_putb16,                          \
                                                                        \
   bfd_getb32, bfd_getb_signed_32, bfd_putb32,                          \
   bfd_getb16, bfd_getb_signed_16, bfd_putb16,                          \
                                                                        \
-       /* bfd_check_format.  */                                        \
-  { _bfd_dummy_target, coff_object_p, bfd_generic_archive_p,           \
-    _bfd_dummy_target },                                               \
-       /* bfd_set_format.  */                                          \
-  { bfd_false, coff_mkobject, _bfd_generic_mkarchive, bfd_false },     \
-       /* bfd_write_contents.  */                                      \
-  { bfd_false, coff_write_object_contents, _bfd_write_archive_contents,        \
-    bfd_false },                                                       \
+  {                            /* bfd_check_format.  */                \
+    _bfd_dummy_target,                                                 \
+    coff_object_p,                                                     \
+    bfd_generic_archive_p,                                             \
+    _bfd_dummy_target                                                  \
+  },                                                                   \
+  {                            /* bfd_set_format.  */                  \
+    _bfd_bool_bfd_false_error,                                         \
+    coff_mkobject,                                                     \
+    _bfd_generic_mkarchive,                                            \
+    _bfd_bool_bfd_false_error                                          \
+  },                                                                   \
+  {                            /* bfd_write_contents.  */              \
+    _bfd_bool_bfd_false_error,                                         \
+    coff_write_object_contents,                                                \
+    _bfd_write_archive_contents,                                       \
+    _bfd_bool_bfd_false_error                                          \
+  },                                                                   \
                                                                        \
   BFD_JUMP_TABLE_GENERIC (coff),                                       \
   BFD_JUMP_TABLE_COPY (coff),                                          \
                                                                        \
   BFD_JUMP_TABLE_GENERIC (coff),                                       \
   BFD_JUMP_TABLE_COPY (coff),                                          \
@@ -6191,14 +5903,25 @@ const bfd_target VAR =                                                  \
   bfd_getl64, bfd_getl_signed_64, bfd_putl64,                          \
   bfd_getl32, bfd_getl_signed_32, bfd_putl32,                          \
   bfd_getl16, bfd_getl_signed_16, bfd_putl16,                          \
   bfd_getl64, bfd_getl_signed_64, bfd_putl64,                          \
   bfd_getl32, bfd_getl_signed_32, bfd_putl32,                          \
   bfd_getl16, bfd_getl_signed_16, bfd_putl16,                          \
-       /* bfd_check_format.  */                                        \
-  { _bfd_dummy_target, coff_object_p, bfd_generic_archive_p,           \
-    _bfd_dummy_target },                                               \
-       /* bfd_set_format.  */                                          \
-  { bfd_false, coff_mkobject, _bfd_generic_mkarchive, bfd_false },     \
-       /* bfd_write_contents.  */                                      \
-  { bfd_false, coff_write_object_contents, _bfd_write_archive_contents,        \
-    bfd_false },                                                       \
+                                                                       \
+  {                            /* bfd_check_format.  */                \
+    _bfd_dummy_target,                                                 \
+    coff_object_p,                                                     \
+    bfd_generic_archive_p,                                             \
+    _bfd_dummy_target                                                  \
+  },                                                                   \
+  {                            /* bfd_set_format.  */                  \
+    _bfd_bool_bfd_false_error,                                         \
+    coff_mkobject,                                                     \
+    _bfd_generic_mkarchive,                                            \
+    _bfd_bool_bfd_false_error                                          \
+  },                                                                   \
+  {                            /* bfd_write_contents.  */              \
+    _bfd_bool_bfd_false_error,                                         \
+    coff_write_object_contents,                                                \
+    _bfd_write_archive_contents,                                       \
+    _bfd_bool_bfd_false_error                                          \
+  },                                                                   \
                                                                        \
   BFD_JUMP_TABLE_GENERIC (coff),                                       \
   BFD_JUMP_TABLE_COPY (coff),                                          \
                                                                        \
   BFD_JUMP_TABLE_GENERIC (coff),                                       \
   BFD_JUMP_TABLE_COPY (coff),                                          \
This page took 0.06239 seconds and 4 git commands to generate.