Automatic date update in version.in
[deliverable/binutils-gdb.git] / bfd / libaout.h
index 887ef316d27e288d1940ed0876621cd27e3c8942..8b70a9f3c59973f54cd62d659a088aaee9ac4551 100644 (file)
@@ -1,14 +1,12 @@
 /* BFD back-end data structures for a.out (and similar) files.
 /* BFD back-end data structures for a.out (and similar) files.
-   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-   2000, 2001, 2002, 2003, 2004, 2005
-   Free Software Foundation, Inc.
+   Copyright (C) 1990-2016 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    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.
 
    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,
@@ -18,7 +16,8 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
 
 #ifndef LIBAOUT_H
 #define LIBAOUT_H
 
 #ifndef LIBAOUT_H
 #define LIBAOUT_H
@@ -292,48 +291,48 @@ enum machine_type
   M_CRIS = 255           /* Axis CRIS binary.  */
 };
 
   M_CRIS = 255           /* Axis CRIS binary.  */
 };
 
-#define N_DYNAMIC(exec) ((exec).a_info & 0x80000000)
+#define N_DYNAMIC(execp) ((execp)->a_info & 0x80000000)
 
 #ifndef N_MAGIC
 
 #ifndef N_MAGIC
-# define N_MAGIC(exec) ((exec).a_info & 0xffff)
+# define N_MAGIC(execp) ((execp)->a_info & 0xffff)
 #endif
 
 #ifndef N_MACHTYPE
 #endif
 
 #ifndef N_MACHTYPE
-# define N_MACHTYPE(exec) ((enum machine_type)(((exec).a_info >> 16) & 0xff))
+# define N_MACHTYPE(execp) ((enum machine_type)(((execp)->a_info >> 16) & 0xff))
 #endif
 
 #ifndef N_FLAGS
 #endif
 
 #ifndef N_FLAGS
-# define N_FLAGS(exec) (((exec).a_info >> 24) & 0xff)
+# define N_FLAGS(execp) (((execp)->a_info >> 24) & 0xff)
 #endif
 
 #ifndef N_SET_INFO
 #endif
 
 #ifndef N_SET_INFO
-# define N_SET_INFO(exec, magic, type, flags) \
-((exec).a_info = ((magic) & 0xffff) \
+# define N_SET_INFO(execp, magic, type, flags) \
+((execp)->a_info = ((magic) & 0xffff) \
  | (((int)(type) & 0xff) << 16) \
  | (((flags) & 0xff) << 24))
 #endif
 
 #ifndef N_SET_DYNAMIC
  | (((int)(type) & 0xff) << 16) \
  | (((flags) & 0xff) << 24))
 #endif
 
 #ifndef N_SET_DYNAMIC
-# define N_SET_DYNAMIC(exec, dynamic) \
-((exec).a_info = (dynamic) ? (long) ((exec).a_info | 0x80000000) : \
-((exec).a_info & 0x7fffffff))
+# define N_SET_DYNAMIC(execp, dynamic) \
+((execp)->a_info = (dynamic) ? (long) ((execp)->a_info | 0x80000000) : \
+((execp)->a_info & 0x7fffffff))
 #endif
 
 #ifndef N_SET_MAGIC
 #endif
 
 #ifndef N_SET_MAGIC
-# define N_SET_MAGIC(exec, magic) \
-((exec).a_info = (((exec).a_info & 0xffff0000) | ((magic) & 0xffff)))
+# define N_SET_MAGIC(execp, magic) \
+((execp)->a_info = (((execp)->a_info & 0xffff0000) | ((magic) & 0xffff)))
 #endif
 
 #ifndef N_SET_MACHTYPE
 #endif
 
 #ifndef N_SET_MACHTYPE
-# define N_SET_MACHTYPE(exec, machtype) \
-((exec).a_info = \
- ((exec).a_info&0xff00ffff) | ((((int)(machtype))&0xff) << 16))
+# define N_SET_MACHTYPE(execp, machtype) \
+((execp)->a_info = \
+ ((execp)->a_info & 0xff00ffff) | ((((int) (machtype)) &0xff) << 16))
 #endif
 
 #ifndef N_SET_FLAGS
 #endif
 
 #ifndef N_SET_FLAGS
-# define N_SET_FLAGS(exec, flags) \
-((exec).a_info = \
- ((exec).a_info&0x00ffffff) | (((flags) & 0xff) << 24))
+# define N_SET_FLAGS(execp, flags) \
+((execp)->a_info = \
+ ((execp)->a_info & 0x00ffffff) | (((flags) & 0xff) << 24))
 #endif
 
 typedef struct aout_symbol
 #endif
 
 typedef struct aout_symbol
@@ -348,6 +347,21 @@ typedef struct aout_symbol
    Various things depend on this struct being around any time an a.out
    file is being handled.  An example is dbxread.c in GDB.  */
 
    Various things depend on this struct being around any time an a.out
    file is being handled.  An example is dbxread.c in GDB.  */
 
+enum aout_subformat {
+  default_format = 0,
+  /* Used on HP 9000/300 running HP/UX.  See hp300hpux.c.  */
+  gnu_encap_format,
+  /* Used on Linux, 386BSD, etc.  See include/aout/aout64.h.  */
+  q_magic_format
+};
+
+enum aout_magic {
+  undecided_magic = 0,
+  z_magic,
+  o_magic,
+  n_magic
+};
+
 struct aoutdata
 {
   struct internal_exec *hdr;           /* Exec file header.  */
 struct aoutdata
 {
   struct internal_exec *hdr;           /* Exec file header.  */
@@ -383,22 +397,9 @@ struct aoutdata
   unsigned vma_adjusted : 1;
 
   /* Used when a bfd supports several highly similar formats.  */
   unsigned vma_adjusted : 1;
 
   /* Used when a bfd supports several highly similar formats.  */
-  enum
-    {
-      default_format = 0,
-      /* Used on HP 9000/300 running HP/UX.  See hp300hpux.c.  */
-      gnu_encap_format,
-      /* Used on Linux, 386BSD, etc.  See include/aout/aout64.h.  */
-      q_magic_format
-    } subformat;
-
-  enum
-    {
-      undecided_magic = 0,
-      z_magic,
-      o_magic,
-      n_magic
-    } magic;
+  enum aout_subformat subformat;
+
+  enum aout_magic magic;
 
   /* A buffer for find_nearest_line.  */
   char *line_buf;
 
   /* A buffer for find_nearest_line.  */
   char *line_buf;
@@ -525,6 +526,9 @@ extern void NAME (aout, swap_std_reloc_in)
 extern reloc_howto_type * NAME (aout, reloc_type_lookup)
   (bfd *, bfd_reloc_code_real_type);
 
 extern reloc_howto_type * NAME (aout, reloc_type_lookup)
   (bfd *, bfd_reloc_code_real_type);
 
+extern reloc_howto_type * NAME (aout, reloc_name_lookup)
+  (bfd *, const char *);
+
 extern bfd_boolean NAME (aout, slurp_reloc_table)
   (bfd *, sec_ptr, asymbol **);
 
 extern bfd_boolean NAME (aout, slurp_reloc_table)
   (bfd *, sec_ptr, asymbol **);
 
@@ -547,8 +551,8 @@ extern void NAME (aout, get_symbol_info)
   (bfd *, asymbol *, symbol_info *);
 
 extern bfd_boolean NAME (aout, find_nearest_line)
   (bfd *, asymbol *, symbol_info *);
 
 extern bfd_boolean NAME (aout, find_nearest_line)
-  (bfd *, asection *, asymbol **, bfd_vma, const char **,
-   const char **, unsigned int *);
+  (bfd *, asymbol **, asection *, bfd_vma,
+   const char **, const char **, unsigned int *, unsigned int *);
 
 extern long NAME (aout, read_minisymbols)
   (bfd *, bfd_boolean, void * *, unsigned int *);
 
 extern long NAME (aout, read_minisymbols)
   (bfd *, bfd_boolean, void * *, unsigned int *);
@@ -557,10 +561,10 @@ extern asymbol * NAME (aout, minisymbol_to_symbol)
   (bfd *, bfd_boolean, const void *, asymbol *);
 
 extern int NAME (aout, sizeof_headers)
   (bfd *, bfd_boolean, const void *, asymbol *);
 
 extern int NAME (aout, sizeof_headers)
-  (bfd *, bfd_boolean);
+  (bfd *, struct bfd_link_info *);
 
 extern bfd_boolean NAME (aout, adjust_sizes_and_vmas)
 
 extern bfd_boolean NAME (aout, adjust_sizes_and_vmas)
-  (bfd *, bfd_size_type *, file_ptr *);
+  (bfd *);
 
 extern void NAME (aout, swap_exec_header_in)
   (bfd *, struct external_exec *, struct internal_exec *);
 
 extern void NAME (aout, swap_exec_header_in)
   (bfd *, struct external_exec *, struct internal_exec *);
@@ -575,7 +579,8 @@ extern bfd_boolean NAME (aout, link_hash_table_init)
   (struct aout_link_hash_table *, bfd *,
    struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
                               struct bfd_hash_table *,
   (struct aout_link_hash_table *, bfd *,
    struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
                               struct bfd_hash_table *,
-                              const char *));
+                              const char *),
+   unsigned int);
 
 extern struct bfd_link_hash_table * NAME (aout, link_hash_table_create)
   (bfd *);
 
 extern struct bfd_link_hash_table * NAME (aout, link_hash_table_create)
   (bfd *);
@@ -590,6 +595,12 @@ extern bfd_boolean NAME (aout, final_link)
 extern bfd_boolean NAME (aout, bfd_free_cached_info)
   (bfd *);
 
 extern bfd_boolean NAME (aout, bfd_free_cached_info)
   (bfd *);
 
+#define aout_32_find_inliner_info      _bfd_nosymbols_find_inliner_info
+#if 0  /* Are these needed? */
+#define aout_16_find_inliner_info      _bfd_nosymbols_find_inliner_info
+#define aout_64_find_inliner_info      _bfd_nosymbols_find_inliner_info
+#endif
+
 /* A.out uses the generic versions of these routines...  */
 
 #define        aout_16_get_section_contents    _bfd_generic_get_section_contents
 /* A.out uses the generic versions of these routines...  */
 
 #define        aout_16_get_section_contents    _bfd_generic_get_section_contents
@@ -613,11 +624,8 @@ extern bfd_boolean NAME (aout, bfd_free_cached_info)
 #ifndef WRITE_HEADERS
 #define WRITE_HEADERS(abfd, execp)                                           \
       {                                                                              \
 #ifndef WRITE_HEADERS
 #define WRITE_HEADERS(abfd, execp)                                           \
       {                                                                              \
-       bfd_size_type text_size; /* Dummy vars.  */                           \
-       file_ptr text_end;                                                    \
-                                                                                     \
        if (adata(abfd).magic == undecided_magic)                             \
        if (adata(abfd).magic == undecided_magic)                             \
-         NAME (aout, adjust_sizes_and_vmas) (abfd, & text_size, & text_end); \
+         NAME (aout, adjust_sizes_and_vmas) (abfd);                          \
                                                                              \
        execp->a_syms = bfd_get_symcount (abfd) * EXTERNAL_NLIST_SIZE;        \
        execp->a_entry = bfd_get_start_address (abfd);                        \
                                                                              \
        execp->a_syms = bfd_get_symcount (abfd) * EXTERNAL_NLIST_SIZE;        \
        execp->a_entry = bfd_get_start_address (abfd);                        \
@@ -637,19 +645,19 @@ extern bfd_boolean NAME (aout, bfd_free_cached_info)
        if (bfd_get_outsymbols (abfd) != NULL                                 \
            && bfd_get_symcount (abfd) != 0)                                  \
          {                                                                   \
        if (bfd_get_outsymbols (abfd) != NULL                                 \
            && bfd_get_symcount (abfd) != 0)                                  \
          {                                                                   \
-           if (bfd_seek (abfd, (file_ptr) (N_SYMOFF(*execp)), SEEK_SET) != 0)\
+           if (bfd_seek (abfd, (file_ptr) (N_SYMOFF (execp)), SEEK_SET) != 0)\
              return FALSE;                                                   \
                                                                              \
            if (! NAME (aout, write_syms) (abfd))                             \
              return FALSE;                                                   \
          }                                                                   \
                                                                              \
              return FALSE;                                                   \
                                                                              \
            if (! NAME (aout, write_syms) (abfd))                             \
              return FALSE;                                                   \
          }                                                                   \
                                                                              \
-       if (bfd_seek (abfd, (file_ptr) (N_TRELOFF (*execp)), SEEK_SET) != 0)  \
+       if (bfd_seek (abfd, (file_ptr) (N_TRELOFF (execp)), SEEK_SET) != 0)   \
          return FALSE;                                                       \
        if (!NAME (aout, squirt_out_relocs) (abfd, obj_textsec (abfd)))       \
          return FALSE;                                                       \
                                                                              \
          return FALSE;                                                       \
        if (!NAME (aout, squirt_out_relocs) (abfd, obj_textsec (abfd)))       \
          return FALSE;                                                       \
                                                                              \
-       if (bfd_seek (abfd, (file_ptr) (N_DRELOFF (*execp)), SEEK_SET) != 0)  \
+       if (bfd_seek (abfd, (file_ptr) (N_DRELOFF (execp)), SEEK_SET) != 0)   \
          return FALSE;                                                       \
        if (!NAME (aout, squirt_out_relocs) (abfd, obj_datasec (abfd)))       \
          return FALSE;                                                       \
          return FALSE;                                                       \
        if (!NAME (aout, squirt_out_relocs) (abfd, obj_datasec (abfd)))       \
          return FALSE;                                                       \
This page took 0.027933 seconds and 4 git commands to generate.