Automatic date update in version.in
[deliverable/binutils-gdb.git] / bfd / aout-adobe.c
index 93182f7ad8589388dce9888d3beda534b3272aba..487ed8cb31f5aaacc73bf40ecb7bde530f06c199 100644 (file)
@@ -1,14 +1,12 @@
 /* BFD back-end for a.out.adobe binaries.
 /* BFD back-end for a.out.adobe binaries.
-   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000,
-   2001, 2002, 2003, 2004, 2005
-   Free Software Foundation, Inc.
+   Copyright (C) 1990-2017 Free Software Foundation, Inc.
    Written by Cygnus Support.  Based on bout.c.
 
    This file is part of BFD, the Binary File Descriptor library.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    Written by Cygnus Support.  Based on bout.c.
 
    This file is part of BFD, the Binary File Descriptor library.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
 
    along with this program; if not, write to the Free Software
    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 "aout/adobe.h"
 #include "aout/stab_gnu.h"
 #include "libaout.h"           /* BFD a.out internal data structures.  */
 
 /* Forward decl.  */
 #include "libbfd.h"
 #include "aout/adobe.h"
 #include "aout/stab_gnu.h"
 #include "libaout.h"           /* BFD a.out internal data structures.  */
 
 /* Forward decl.  */
-extern const bfd_target a_out_adobe_vec;
+extern const bfd_target aout_adobe_vec;
 
 /* Swaps the information in an executable header taken from a raw byte
    stream memory image, into the internal exec_header structure.  */
 
 /* Swaps the information in an executable header taken from a raw byte
    stream memory image, into the internal exec_header structure.  */
@@ -88,8 +86,8 @@ aout_adobe_callback (bfd *abfd)
   bfd_set_arch_mach (abfd, bfd_arch_unknown, 0L);
 
   /* The positions of the string table and symbol table.  */
   bfd_set_arch_mach (abfd, bfd_arch_unknown, 0L);
 
   /* The positions of the string table and symbol table.  */
-  obj_str_filepos (abfd) = N_STROFF (*execp);
-  obj_sym_filepos (abfd) = N_SYMOFF (*execp);
+  obj_str_filepos (abfd) = N_STROFF (execp);
+  obj_sym_filepos (abfd) = N_SYMOFF (execp);
 
   /* Suck up the section information from the file, one section at a time.  */
   for (;;)
 
   /* Suck up the section information from the file, one section at a time.  */
   for (;;)
@@ -123,7 +121,8 @@ aout_adobe_callback (bfd *abfd)
          goto no_more_sections;
 
        default:
          goto no_more_sections;
 
        default:
-         (*_bfd_error_handler)
+         _bfd_error_handler
+           /* xgettext:c-format */
            (_("%B: Unknown section type in a.out.adobe file: %x\n"),
             abfd, ext->e_type[0]);
          goto no_more_sections;
            (_("%B: Unknown section type in a.out.adobe file: %x\n"),
             abfd, ext->e_type[0]);
          goto no_more_sections;
@@ -132,7 +131,7 @@ aout_adobe_callback (bfd *abfd)
       /* First one is called ".text" or whatever; subsequent ones are
         ".text1", ".text2", ...  */
       bfd_set_error (bfd_error_no_error);
       /* First one is called ".text" or whatever; subsequent ones are
         ".text1", ".text2", ...  */
       bfd_set_error (bfd_error_no_error);
-      sect = bfd_make_section (abfd, section_name);
+      sect = bfd_make_section_with_flags (abfd, section_name, flags);
       trynum = 0;
 
       while (!sect)
       trynum = 0;
 
       while (!sect)
@@ -141,7 +140,7 @@ aout_adobe_callback (bfd *abfd)
            /* Some other error -- slide into the sunset.  */
            return NULL;
          sprintf (try_again, "%s%d", section_name, ++trynum);
            /* Some other error -- slide into the sunset.  */
            return NULL;
          sprintf (try_again, "%s%d", section_name, ++trynum);
-         sect = bfd_make_section (abfd, try_again);
+         sect = bfd_make_section_with_flags (abfd, try_again, flags);
        }
 
       /* Fix the name, if it is a sprintf'd name.  */
        }
 
       /* Fix the name, if it is a sprintf'd name.  */
@@ -155,8 +154,6 @@ aout_adobe_callback (bfd *abfd)
          sect->name = newname;
        }
 
          sect->name = newname;
        }
 
-      /* Now set the section's attributes.  */
-      bfd_set_section_flags (abfd, sect, flags);
       /* Assumed big-endian.  */
       sect->size = ((ext->e_size[0] << 8)
                    | ext->e_size[1] << 8
       /* Assumed big-endian.  */
       sect->size = ((ext->e_size[0] << 8)
                    | ext->e_size[1] << 8
@@ -170,12 +167,12 @@ aout_adobe_callback (bfd *abfd)
        switch (ext->e_type[0])
          {
          case N_TEXT:
        switch (ext->e_type[0])
          {
          case N_TEXT:
-           sect->rel_filepos = N_TRELOFF (*execp);
+           sect->rel_filepos = N_TRELOFF (execp);
            sect->reloc_count = execp->a_trsize;
            break;
 
          case N_DATA:
            sect->reloc_count = execp->a_trsize;
            break;
 
          case N_DATA:
-           sect->rel_filepos = N_DRELOFF (*execp);
+           sect->rel_filepos = N_DRELOFF (execp);
            sect->reloc_count = execp->a_drsize;
            break;
 
            sect->reloc_count = execp->a_drsize;
            break;
 
@@ -217,10 +214,10 @@ aout_adobe_object_p (bfd *abfd)
      If the environment variable GNUTARGET is set to "a.out.adobe", we will
      take just about any a.out file as an Adobe a.out file.  FIXME!  */
 
      If the environment variable GNUTARGET is set to "a.out.adobe", we will
      take just about any a.out file as an Adobe a.out file.  FIXME!  */
 
-  if (N_BADMAG (anexec))
+  if (N_BADMAG (&anexec))
     {
       targ = getenv ("GNUTARGET");
     {
       targ = getenv ("GNUTARGET");
-      if (targ && !strcmp (targ, a_out_adobe_vec.name))
+      if (targ && !strcmp (targ, aout_adobe_vec.name))
        /* Just continue anyway, if specifically set to this format.  */
        ;
       else
        /* Just continue anyway, if specifically set to this format.  */
        ;
       else
@@ -337,14 +334,14 @@ aout_adobe_write_object_contents (bfd *abfd)
   /* Now write out reloc info, followed by syms and strings.  */
   if (bfd_get_symcount (abfd) != 0)
     {
   /* Now write out reloc info, followed by syms and strings.  */
   if (bfd_get_symcount (abfd) != 0)
     {
-      if (bfd_seek (abfd, (file_ptr) (N_SYMOFF (*exec_hdr (abfd))), SEEK_SET)
+      if (bfd_seek (abfd, (file_ptr) (N_SYMOFF (exec_hdr (abfd))), SEEK_SET)
          != 0)
        return FALSE;
 
       if (! aout_32_write_syms (abfd))
        return FALSE;
 
          != 0)
        return FALSE;
 
       if (! aout_32_write_syms (abfd))
        return FALSE;
 
-      if (bfd_seek (abfd, (file_ptr) (N_TRELOFF (*exec_hdr (abfd))), SEEK_SET)
+      if (bfd_seek (abfd, (file_ptr) (N_TRELOFF (exec_hdr (abfd))), SEEK_SET)
          != 0)
        return FALSE;
 
          != 0)
        return FALSE;
 
@@ -353,7 +350,7 @@ aout_adobe_write_object_contents (bfd *abfd)
          if (!aout_32_squirt_out_relocs (abfd, sect))
            return FALSE;
 
          if (!aout_32_squirt_out_relocs (abfd, sect))
            return FALSE;
 
-      if (bfd_seek (abfd, (file_ptr) (N_DRELOFF (*exec_hdr (abfd))), SEEK_SET)
+      if (bfd_seek (abfd, (file_ptr) (N_DRELOFF (exec_hdr (abfd))), SEEK_SET)
          != 0)
        return FALSE;
 
          != 0)
        return FALSE;
 
@@ -381,7 +378,7 @@ aout_adobe_set_section_contents (bfd *abfd,
     {
       /* Assign file offsets to sections.  Text sections are first, and
         are contiguous.  Then data sections.  Everything else at the end.  */
     {
       /* Assign file offsets to sections.  Text sections are first, and
         are contiguous.  Then data sections.  Everything else at the end.  */
-      section_start = N_TXTOFF (ignore<-->me);
+      section_start = N_TXTOFF (0);
 
       for (sect = abfd->sections; sect; sect = sect->next)
        {
 
       for (sect = abfd->sections; sect; sect = sect->next)
        {
@@ -443,15 +440,18 @@ aout_adobe_set_arch_mach (bfd *abfd,
 
 static int
 aout_adobe_sizeof_headers (bfd *ignore_abfd ATTRIBUTE_UNUSED,
 
 static int
 aout_adobe_sizeof_headers (bfd *ignore_abfd ATTRIBUTE_UNUSED,
-                          bfd_boolean ignore ATTRIBUTE_UNUSED)
+                          struct bfd_link_info *info ATTRIBUTE_UNUSED)
 {
   return sizeof (struct internal_exec);
 }
 
 /* Build the transfer vector for Adobe A.Out files.  */
 
 {
   return sizeof (struct internal_exec);
 }
 
 /* Build the transfer vector for Adobe A.Out files.  */
 
-#define aout_32_bfd_make_debug_symbol ((asymbol *(*) (bfd *, void *, unsigned long)) bfd_nullvoidptr)
-#define aout_32_bfd_reloc_type_lookup ((reloc_howto_type *(*) (bfd *, bfd_reloc_code_real_type)) bfd_nullvoidptr)
+#define aout_32_find_line                          _bfd_nosymbols_find_line
+#define aout_32_get_symbol_version_string          _bfd_nosymbols_get_symbol_version_string
+#define aout_32_bfd_make_debug_symbol              _bfd_nosymbols_bfd_make_debug_symbol
+#define aout_32_bfd_reloc_type_lookup              _bfd_norelocs_bfd_reloc_type_lookup
+#define aout_32_bfd_reloc_name_lookup              _bfd_norelocs_bfd_reloc_name_lookup
 #define aout_32_close_and_cleanup                   aout_32_bfd_free_cached_info
 #define        aout_32_set_arch_mach                       aout_adobe_set_arch_mach
 #define        aout_32_set_section_contents                aout_adobe_set_section_contents
 #define aout_32_close_and_cleanup                   aout_32_bfd_free_cached_info
 #define        aout_32_set_arch_mach                       aout_adobe_set_arch_mach
 #define        aout_32_set_section_contents                aout_adobe_set_section_contents
@@ -460,18 +460,24 @@ aout_adobe_sizeof_headers (bfd *ignore_abfd ATTRIBUTE_UNUSED,
 #define aout_32_get_section_contents_in_window      _bfd_generic_get_section_contents_in_window
 #define aout_32_bfd_relax_section                   bfd_generic_relax_section
 #define aout_32_bfd_gc_sections                     bfd_generic_gc_sections
 #define aout_32_get_section_contents_in_window      _bfd_generic_get_section_contents_in_window
 #define aout_32_bfd_relax_section                   bfd_generic_relax_section
 #define aout_32_bfd_gc_sections                     bfd_generic_gc_sections
+#define aout_32_bfd_lookup_section_flags           bfd_generic_lookup_section_flags
 #define aout_32_bfd_merge_sections                 bfd_generic_merge_sections
 #define aout_32_bfd_is_group_section               bfd_generic_is_group_section
 #define aout_32_bfd_discard_group                  bfd_generic_discard_group
 #define aout_32_section_already_linked              _bfd_generic_section_already_linked
 #define aout_32_bfd_merge_sections                 bfd_generic_merge_sections
 #define aout_32_bfd_is_group_section               bfd_generic_is_group_section
 #define aout_32_bfd_discard_group                  bfd_generic_discard_group
 #define aout_32_section_already_linked              _bfd_generic_section_already_linked
+#define aout_32_bfd_define_common_symbol            bfd_generic_define_common_symbol
+#define aout_32_bfd_define_start_stop               bfd_generic_define_start_stop
 #define aout_32_bfd_link_hash_table_create          _bfd_generic_link_hash_table_create
 #define aout_32_bfd_link_hash_table_create          _bfd_generic_link_hash_table_create
-#define aout_32_bfd_link_hash_table_free            _bfd_generic_link_hash_table_free
 #define aout_32_bfd_link_add_symbols               _bfd_generic_link_add_symbols
 #define aout_32_bfd_link_just_syms                 _bfd_generic_link_just_syms
 #define aout_32_bfd_link_add_symbols               _bfd_generic_link_add_symbols
 #define aout_32_bfd_link_just_syms                 _bfd_generic_link_just_syms
+#define aout_32_bfd_copy_link_hash_symbol_type \
+  _bfd_generic_copy_link_hash_symbol_type
 #define aout_32_bfd_final_link                     _bfd_generic_final_link
 #define aout_32_bfd_link_split_section             _bfd_generic_link_split_section
 #define aout_32_bfd_final_link                     _bfd_generic_final_link
 #define aout_32_bfd_link_split_section             _bfd_generic_link_split_section
+#define aout_32_bfd_link_check_relocs               _bfd_generic_link_check_relocs
+#define aout_32_set_reloc                          _bfd_generic_set_reloc
 
 
-const bfd_target a_out_adobe_vec =
+const bfd_target aout_adobe_vec =
 {
   "a.out.adobe",               /* Name.  */
   bfd_target_aout_flavour,
 {
   "a.out.adobe",               /* Name.  */
   bfd_target_aout_flavour,
@@ -485,6 +491,7 @@ const bfd_target a_out_adobe_vec =
   '_',                         /* Symbol leading char.  */
   ' ',                         /* AR_pad_char.  */
   16,                          /* AR_max_namelen.  */
   '_',                         /* Symbol leading char.  */
   ' ',                         /* AR_pad_char.  */
   16,                          /* AR_max_namelen.  */
+  0,                           /* match priority.  */
 
   bfd_getb64, bfd_getb_signed_64, bfd_putb64,
   bfd_getb32, bfd_getb_signed_32, bfd_putb32,
 
   bfd_getb64, bfd_getb_signed_64, bfd_putb64,
   bfd_getb32, bfd_getb_signed_32, bfd_putb32,
This page took 0.031703 seconds and 4 git commands to generate.