summaryrefslogtreecommitdiffstats
path: root/contrib/binutils/bfd/libcoff.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/binutils/bfd/libcoff.h')
-rw-r--r--contrib/binutils/bfd/libcoff.h57
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))
OpenPOWER on IntegriCloud