* alpha-dis.c: Fix formatting.
[deliverable/binutils-gdb.git] / bfd / libcoff.h
index bee4ce9e85876e02f86aee3908fb4901c79bc479..76a5d247ebaf4f0d01afe247c93447b3f7dec5d9 100644 (file)
@@ -1,5 +1,6 @@
 /* BFD COFF object file private structure.
-   Copyright (C) 1990, 91, 92, 93, 94, 95, 96, 97, 98, 1999
+   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+   2000, 2001
    Free Software Foundation, Inc.
    Written by Cygnus Support.
 
@@ -43,6 +44,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #define obj_coff_strings(bfd)  (coff_data (bfd)->strings)
 #define obj_coff_keep_strings(bfd) (coff_data (bfd)->keep_strings)
 #define obj_coff_sym_hashes(bfd) (coff_data (bfd)->sym_hashes)
+#define obj_coff_strings_written(bfd) (coff_data (bfd)->strings_written)
 
 #define obj_coff_local_toc_table(bfd) (coff_data(bfd)->local_toc_sym_map)
 
@@ -83,6 +85,8 @@ typedef struct coff_tdata
   char *strings;
   /* If this is true, the strings may not be freed.  */
   boolean keep_strings;
+  /* If this is true, the strings have been written out already.  */
+  boolean strings_written;
 
   /* is this a PE format coff file */
   int pe;
@@ -97,6 +101,9 @@ typedef struct coff_tdata
   /* Used by coff_find_nearest_line.  */
   PTR line_info;
 
+  /* A place to stash dwarf2 info for this bfd. */
+  PTR dwarf2_find_line_info;
+
   /* The timestamp from the COFF file header.  */
   long timestamp;
 
@@ -115,6 +122,8 @@ typedef struct pe_tdata
   int has_reloc_section;
   boolean (*in_reloc_p) PARAMS((bfd *, reloc_howto_type *));
   flagword real_flags;
+  int target_subsystem;
+  boolean force_minimum_alignment;
 } pe_data_type;
 
 #define pe_data(bfd)           ((bfd)->tdata.pe_obj_data)
@@ -126,6 +135,9 @@ struct xcoff_tdata
   /* Basic COFF information.  */
   coff_data_type coff;
 
+  /* True if this is an XCOFF64 file. */
+  boolean xcoff64;
+
   /* True if a large a.out header should be generated.  */
   boolean full_aouthdr;
 
@@ -151,10 +163,10 @@ struct xcoff_tdata
   short cputype;
 
   /* maxdata from optional header.  */
-  bfd_size_type maxdata;
+  bfd_vma maxdata;
 
   /* maxstack from optional header.  */
-  bfd_size_type maxstack;
+  bfd_vma maxstack;
 
   /* Used by the XCOFF backend linker.  */
   asection **csects;
@@ -575,32 +587,32 @@ extern boolean ppc_process_before_allocation
 typedef struct coff_ptr_struct
 {
 
-        /* Remembers the offset from the first symbol in the file for
+       /* Remembers the offset from the first symbol in the file for
           this symbol. Generated by coff_renumber_symbols. */
 unsigned int offset;
 
-        /* Should the value of this symbol be renumbered.  Used for
+       /* Should the value of this symbol be renumbered.  Used for
           XCOFF C_BSTAT symbols.  Set by coff_slurp_symbol_table.  */
 unsigned int fix_value : 1;
 
-        /* Should the tag field of this symbol be renumbered.
+       /* Should the tag field of this symbol be renumbered.
           Created by coff_pointerize_aux. */
 unsigned int fix_tag : 1;
 
-        /* Should the endidx field of this symbol be renumbered.
+       /* Should the endidx field of this symbol be renumbered.
           Created by coff_pointerize_aux. */
 unsigned int fix_end : 1;
 
-        /* Should the x_csect.x_scnlen field be renumbered.
+       /* Should the x_csect.x_scnlen field be renumbered.
           Created by coff_pointerize_aux. */
 unsigned int fix_scnlen : 1;
 
-        /* Fix up an XCOFF C_BINCL/C_EINCL symbol.  The value is the
+       /* Fix up an XCOFF C_BINCL/C_EINCL symbol.  The value is the
           index into the line number entries.  Set by
           coff_slurp_symbol_table.  */
 unsigned int fix_line : 1;
 
-        /* The container for the symbol structure as read and translated
+       /* The container for the symbol structure as read and translated
            from the file. */
 
 union {
@@ -610,35 +622,35 @@ union {
 } combined_entry_type;
 
 
- /* Each canonical asymbol really looks like this: */
+/* Each canonical asymbol really looks like this: */
 
 typedef struct coff_symbol_struct
 {
-    /* The actual symbol which the rest of BFD works with */
+   /* The actual symbol which the rest of BFD works with */
 asymbol symbol;
 
-    /* A pointer to the hidden information for this symbol */
+   /* A pointer to the hidden information for this symbol */
 combined_entry_type *native;
 
-    /* A pointer to the linenumber information for this symbol */
+   /* A pointer to the linenumber information for this symbol */
 struct lineno_cache_entry *lineno;
 
-    /* Have the line numbers been relocated yet ? */
+   /* Have the line numbers been relocated yet ? */
 boolean done_lineno;
 } coff_symbol_type;
- /* COFF symbol classifications.  */
+/* COFF symbol classifications.  */
 
 enum coff_symbol_classification
 {
-   /* Global symbol.  */
+  /* Global symbol.  */
   COFF_SYMBOL_GLOBAL,
-   /* Common symbol.  */
+  /* Common symbol.  */
   COFF_SYMBOL_COMMON,
-   /* Undefined symbol.  */
+  /* Undefined symbol.  */
   COFF_SYMBOL_UNDEFINED,
-   /* Local symbol.  */
+  /* Local symbol.  */
   COFF_SYMBOL_LOCAL,
-   /* PE section symbol.  */
+  /* PE section symbol.  */
   COFF_SYMBOL_PE_SECTION
 };
 
@@ -713,6 +725,8 @@ typedef struct
  boolean _bfd_coff_long_filenames;
  boolean _bfd_coff_long_section_names;
  unsigned int _bfd_coff_default_section_alignment_power;
+ boolean _bfd_coff_force_symnames_in_strings;
+ unsigned int _bfd_coff_debug_string_prefix_length;
  void (*_bfd_coff_swap_filehdr_in) PARAMS ((
        bfd     *abfd,
        PTR     ext,
@@ -739,11 +753,12 @@ typedef struct
        bfd     *abfd,
        PTR     internal_filehdr,
        PTR     internal_aouthdr));
flagword (*_bfd_styp_to_sec_flags_hook) PARAMS ((
boolean (*_bfd_styp_to_sec_flags_hook) PARAMS ((
        bfd     *abfd,
        PTR     internal_scnhdr,
        const char *name,
-       asection *section));
+       asection *section,
+       flagword *flags_ptr));
  void (*_bfd_set_alignment_hook) PARAMS ((
        bfd     *abfd,
        asection *sec,
@@ -815,12 +830,12 @@ typedef struct
        struct bfd_link_info *info,
        bfd *abfd,
        const char *name,
-       flagword flags, 
+       flagword flags,
        asection *section,
        bfd_vma value,
        const char *string,
        boolean copy,
-       boolean collect, 
+       boolean collect,
        struct bfd_link_hash_entry **hashp));
 
  boolean (*_bfd_coff_link_output_has_begun) PARAMS ((
@@ -897,9 +912,9 @@ typedef struct
 #define bfd_coff_mkobject_hook(abfd, filehdr, aouthdr)\
         ((coff_backend_info (abfd)->_bfd_coff_mkobject_hook) (abfd, filehdr, aouthdr))
 
-#define bfd_coff_styp_to_sec_flags_hook(abfd, scnhdr, name, section)\
+#define bfd_coff_styp_to_sec_flags_hook(abfd, scnhdr, name, section, flags_ptr)\
         ((coff_backend_info (abfd)->_bfd_styp_to_sec_flags_hook)\
-         (abfd, scnhdr, name, section))
+         (abfd, scnhdr, name, section, flags_ptr))
 
 #define bfd_coff_set_alignment_hook(abfd, sec, scnhdr)\
         ((coff_backend_info (abfd)->_bfd_set_alignment_hook) (abfd, sec, scnhdr))
@@ -910,6 +925,12 @@ typedef struct
 #define bfd_coff_symname_in_debug(abfd, sym)\
         ((coff_backend_info (abfd)->_bfd_coff_symname_in_debug) (abfd, sym))
 
+#define bfd_coff_force_symnames_in_strings(abfd)\
+       (coff_backend_info (abfd)->_bfd_coff_force_symnames_in_strings)
+
+#define bfd_coff_debug_string_prefix_length(abfd)\
+       (coff_backend_info (abfd)->_bfd_coff_debug_string_prefix_length)
+
 #define bfd_coff_print_aux(abfd, file, base, symbol, aux, indaux)\
         ((coff_backend_info (abfd)->_bfd_coff_print_aux)\
          (abfd, file, base, symbol, aux, indaux))
This page took 0.025903 seconds and 4 git commands to generate.