diff options
Diffstat (limited to 'contrib/binutils/bfd/libcoff.h')
-rw-r--r-- | contrib/binutils/bfd/libcoff.h | 57 |
1 files changed, 37 insertions, 20 deletions
diff --git a/contrib/binutils/bfd/libcoff.h b/contrib/binutils/bfd/libcoff.h index bee4ce9..5115538 100644 --- a/contrib/binutils/bfd/libcoff.h +++ b/contrib/binutils/bfd/libcoff.h @@ -43,6 +43,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 +84,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 +100,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; @@ -126,6 +132,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; @@ -575,32 +584,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 +619,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 +722,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, @@ -815,12 +826,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 (( @@ -910,6 +921,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)) |