/* DO NOT EDIT! -*- buffer-read-only: t -*- This file is automatically
- generated from "proto.str chew".
+ generated from "libcoff-in.h" and "coffcode.h".
Run "make headers" in your build bfd/ to regenerate. */
/* BFD COFF object file private structure.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002
+ 2000, 2001, 2002, 2003, 2004
Free Software Foundation, Inc.
Written by Cygnus Support.
/* The unswapped external symbols. May be NULL. Read by
_bfd_coff_get_external_symbols. */
PTR external_syms;
- /* If this is true, the external_syms may not be freed. */
- boolean keep_syms;
+ /* If this is TRUE, the external_syms may not be freed. */
+ bfd_boolean keep_syms;
/* The string table. May be NULL. Read by
_bfd_coff_read_string_table. */
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;
+ /* If this is TRUE, the strings may not be freed. */
+ bfd_boolean keep_strings;
+ /* If this is TRUE, the strings have been written out already. */
+ bfd_boolean strings_written;
/* is this a PE format coff file */
int pe;
struct internal_extra_pe_aouthdr pe_opthdr;
int dll;
int has_reloc_section;
- boolean (*in_reloc_p) PARAMS((bfd *, reloc_howto_type *));
+ bfd_boolean (*in_reloc_p) PARAMS((bfd *, reloc_howto_type *));
flagword real_flags;
int target_subsystem;
- boolean force_minimum_alignment;
+ bfd_boolean force_minimum_alignment;
} pe_data_type;
#define pe_data(bfd) ((bfd)->tdata.pe_obj_data)
/* Basic COFF information. */
coff_data_type coff;
- /* True if this is an XCOFF64 file. */
- boolean xcoff64;
+ /* TRUE if this is an XCOFF64 file. */
+ bfd_boolean xcoff64;
- /* True if a large a.out header should be generated. */
- boolean full_aouthdr;
+ /* TRUE if a large a.out header should be generated. */
+ bfd_boolean full_aouthdr;
/* TOC value. */
bfd_vma toc;
{
/* The relocs, swapped into COFF internal form. This may be NULL. */
struct internal_reloc *relocs;
- /* If this is true, the relocs entry may not be freed. */
- boolean keep_relocs;
+ /* If this is TRUE, the relocs entry may not be freed. */
+ bfd_boolean keep_relocs;
/* The section contents. This may be NULL. */
bfd_byte *contents;
- /* If this is true, the contents entry may not be freed. */
- boolean keep_contents;
+ /* If this is TRUE, the contents entry may not be freed. */
+ bfd_boolean keep_contents;
/* Information cached by coff_find_nearest_line. */
bfd_vma offset;
unsigned int i;
const char *function;
+ /* Optional information about a COMDAT entry; NULL if not COMDAT. */
+ struct coff_comdat_info *comdat;
int line_base;
/* A pointer used for .stab linking optimizations. */
PTR stab_info;
{
struct bfd_link_hash_table root;
/* A pointer to information used to link stabs in sections. */
- PTR stab_info;
+ struct stab_info stab_info;
};
/* Look up an entry in a COFF linker hash table. */
#define coff_link_hash_traverse(table, func, info) \
(bfd_link_hash_traverse \
(&(table)->root, \
- (boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \
+ (bfd_boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \
(info)))
/* Get the COFF linker hash table from a link_info structure. */
/* Functions in coffgen.c. */
extern const bfd_target *coff_object_p
PARAMS ((bfd *));
-extern struct sec *coff_section_from_bfd_index
+extern struct bfd_section *coff_section_from_bfd_index
PARAMS ((bfd *, int));
extern long coff_get_symtab_upper_bound
PARAMS ((bfd *));
-extern long coff_get_symtab
+extern long coff_canonicalize_symtab
PARAMS ((bfd *, asymbol **));
extern int coff_count_linenumbers
PARAMS ((bfd *));
extern struct coff_symbol_struct *coff_symbol_from
PARAMS ((bfd *, asymbol *));
-extern boolean coff_renumber_symbols
+extern bfd_boolean coff_renumber_symbols
PARAMS ((bfd *, int *));
extern void coff_mangle_symbols
PARAMS ((bfd *));
-extern boolean coff_write_symbols
+extern bfd_boolean coff_write_symbols
PARAMS ((bfd *));
-extern boolean coff_write_linenumbers
+extern bfd_boolean coff_write_linenumbers
PARAMS ((bfd *));
extern alent *coff_get_lineno
PARAMS ((bfd *, asymbol *));
extern asymbol *coff_section_symbol
PARAMS ((bfd *, char *));
-extern boolean _bfd_coff_get_external_symbols
+extern bfd_boolean _bfd_coff_get_external_symbols
PARAMS ((bfd *));
extern const char *_bfd_coff_read_string_table
PARAMS ((bfd *));
-extern boolean _bfd_coff_free_symbols
+extern bfd_boolean _bfd_coff_free_symbols
PARAMS ((bfd *));
extern struct coff_ptr_struct *coff_get_normalized_symtab
PARAMS ((bfd *));
PARAMS ((bfd *, PTR filep, asymbol *, bfd_print_symbol_type));
extern void coff_get_symbol_info
PARAMS ((bfd *, asymbol *, symbol_info *ret));
-extern boolean _bfd_coff_is_local_label_name
+extern bfd_boolean _bfd_coff_is_local_label_name
PARAMS ((bfd *, const char *));
extern asymbol *coff_bfd_make_debug_symbol
PARAMS ((bfd *, PTR, unsigned long));
-extern boolean coff_find_nearest_line
+extern bfd_boolean coff_find_nearest_line
PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **,
const char **, unsigned int *));
extern int coff_sizeof_headers
- PARAMS ((bfd *, boolean));
-extern boolean bfd_coff_reloc16_relax_section
- PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *));
+ PARAMS ((bfd *, bfd_boolean));
+extern bfd_boolean bfd_coff_reloc16_relax_section
+ PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *));
extern bfd_byte *bfd_coff_reloc16_get_relocated_section_contents
PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *,
- bfd_byte *, boolean, asymbol **));
+ bfd_byte *, bfd_boolean, asymbol **));
extern bfd_vma bfd_coff_reloc16_get_value
PARAMS ((arelent *, struct bfd_link_info *, asection *));
extern void bfd_perform_slip
bfd_hash_lookup (&(table)->root, (string), (create), (copy)))
/* Information we keep for each section in the output file when doing
- a relocateable link. */
+ a relocatable link. */
struct coff_link_section_info
{
/* Output BFD. */
bfd *output_bfd;
/* Used to indicate failure in traversal routine. */
- boolean failed;
+ bfd_boolean failed;
/* If doing "task linking" set only during the time when we want the
global symbol writer to convert the storage class of defined global
symbols from global to static. */
- boolean global_to_static;
+ bfd_boolean global_to_static;
/* Hash table for long symbol names. */
struct bfd_strtab_hash *strtab;
- /* When doing a relocateable link, an array of information kept for
+ /* When doing a relocatable link, an array of information kept for
each output section, indexed by the target_index field. */
struct coff_link_section_info *section_info;
/* Symbol index of last C_FILE symbol (-1 if none). */
extern struct bfd_hash_entry *_bfd_coff_link_hash_newfunc
PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
-extern boolean _bfd_coff_link_hash_table_init
+extern bfd_boolean _bfd_coff_link_hash_table_init
PARAMS ((struct coff_link_hash_table *, bfd *,
struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
struct bfd_hash_table *,
PARAMS ((bfd *));
extern const char *_bfd_coff_internal_syment_name
PARAMS ((bfd *, const struct internal_syment *, char *));
-extern boolean _bfd_coff_link_add_symbols
+extern bfd_boolean _bfd_coff_link_add_symbols
PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean _bfd_coff_final_link
+extern bfd_boolean _bfd_coff_final_link
PARAMS ((bfd *, struct bfd_link_info *));
extern struct internal_reloc *_bfd_coff_read_internal_relocs
- PARAMS ((bfd *, asection *, boolean, bfd_byte *, boolean,
+ PARAMS ((bfd *, asection *, bfd_boolean, bfd_byte *, bfd_boolean,
struct internal_reloc *));
-extern boolean _bfd_coff_generic_relocate_section
+extern bfd_boolean _bfd_coff_generic_relocate_section
PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
struct internal_reloc *, struct internal_syment *, asection **));
extern struct bfd_hash_entry *_bfd_coff_debug_merge_hash_newfunc
PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
-extern boolean _bfd_coff_write_global_sym
+extern bfd_boolean _bfd_coff_write_global_sym
PARAMS ((struct coff_link_hash_entry *, PTR));
-extern boolean _bfd_coff_write_task_globals
+extern bfd_boolean _bfd_coff_write_task_globals
PARAMS ((struct coff_link_hash_entry *, PTR));
-extern boolean _bfd_coff_link_input_bfd
+extern bfd_boolean _bfd_coff_link_input_bfd
PARAMS ((struct coff_final_link_info *, bfd *));
-extern boolean _bfd_coff_reloc_link_order
+extern bfd_boolean _bfd_coff_reloc_link_order
PARAMS ((bfd *, struct coff_final_link_info *, asection *,
struct bfd_link_order *));
PARAMS ((bfd *));
extern void _bfd_xcoff_bfd_link_hash_table_free
PARAMS ((struct bfd_link_hash_table *));
-extern boolean _bfd_xcoff_bfd_link_add_symbols
+extern bfd_boolean _bfd_xcoff_bfd_link_add_symbols
PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean _bfd_xcoff_bfd_final_link
+extern bfd_boolean _bfd_xcoff_bfd_final_link
PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean _bfd_ppc_xcoff_relocate_section
+extern bfd_boolean _bfd_ppc_xcoff_relocate_section
PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
struct internal_reloc *, struct internal_syment *, asection **));
/* Functions in coff-ppc.c. FIXME: These are called be pe.em in the
linker, and so should start with bfd and be declared in bfd.h. */
-extern boolean ppc_allocate_toc_section
+extern bfd_boolean ppc_allocate_toc_section
PARAMS ((struct bfd_link_info *));
-extern boolean ppc_process_before_allocation
+extern bfd_boolean ppc_process_before_allocation
PARAMS ((bfd *, struct bfd_link_info *));
/* Extracted from coffcode.h. */
struct lineno_cache_entry *lineno;
/* Have the line numbers been relocated yet ? */
- boolean done_lineno;
+ bfd_boolean done_lineno;
} coff_symbol_type;
/* COFF symbol classifications. */
unsigned int _bfd_relsz;
unsigned int _bfd_linesz;
unsigned int _bfd_filnmlen;
- boolean _bfd_coff_long_filenames;
- boolean _bfd_coff_long_section_names;
+ bfd_boolean _bfd_coff_long_filenames;
+ bfd_boolean _bfd_coff_long_section_names;
unsigned int _bfd_coff_default_section_alignment_power;
- boolean _bfd_coff_force_symnames_in_strings;
+ bfd_boolean _bfd_coff_force_symnames_in_strings;
unsigned int _bfd_coff_debug_string_prefix_length;
void (*_bfd_coff_swap_filehdr_in)
void (*_bfd_coff_swap_reloc_in)
PARAMS ((bfd *abfd, PTR, PTR));
- boolean (*_bfd_coff_bad_format_hook)
+ bfd_boolean (*_bfd_coff_bad_format_hook)
PARAMS ((bfd *, PTR));
- boolean (*_bfd_coff_set_arch_mach_hook)
+ bfd_boolean (*_bfd_coff_set_arch_mach_hook)
PARAMS ((bfd *, PTR));
PTR (*_bfd_coff_mkobject_hook)
PARAMS ((bfd *, PTR, PTR));
- boolean (*_bfd_styp_to_sec_flags_hook)
+ bfd_boolean (*_bfd_styp_to_sec_flags_hook)
PARAMS ((bfd *, PTR, const char *, asection *, flagword *));
void (*_bfd_set_alignment_hook)
PARAMS ((bfd *, asection *, PTR));
- boolean (*_bfd_coff_slurp_symbol_table)
+ bfd_boolean (*_bfd_coff_slurp_symbol_table)
PARAMS ((bfd *));
- boolean (*_bfd_coff_symname_in_debug)
+ bfd_boolean (*_bfd_coff_symname_in_debug)
PARAMS ((bfd *, struct internal_syment *));
- boolean (*_bfd_coff_pointerize_aux_hook)
+ bfd_boolean (*_bfd_coff_pointerize_aux_hook)
PARAMS ((bfd *, combined_entry_type *, combined_entry_type *,
unsigned int, combined_entry_type *));
- boolean (*_bfd_coff_print_aux)
+ bfd_boolean (*_bfd_coff_print_aux)
PARAMS ((bfd *, FILE *, combined_entry_type *, combined_entry_type *,
combined_entry_type *, unsigned int));
enum coff_symbol_classification (*_bfd_coff_classify_symbol)
PARAMS ((bfd *, struct internal_syment *));
- boolean (*_bfd_coff_compute_section_file_positions)
+ bfd_boolean (*_bfd_coff_compute_section_file_positions)
PARAMS ((bfd *));
- boolean (*_bfd_coff_start_final_link)
+ bfd_boolean (*_bfd_coff_start_final_link)
PARAMS ((bfd *, struct bfd_link_info *));
- boolean (*_bfd_coff_relocate_section)
+ bfd_boolean (*_bfd_coff_relocate_section)
PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
struct internal_reloc *, struct internal_syment *, asection **));
struct coff_link_hash_entry *, struct internal_syment *,
bfd_vma *));
- boolean (*_bfd_coff_adjust_symndx)\
+ bfd_boolean (*_bfd_coff_adjust_symndx)
PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *,
- struct internal_reloc *, boolean *));
+ struct internal_reloc *, bfd_boolean *));
- boolean (*_bfd_coff_link_add_one_symbol)
+ bfd_boolean (*_bfd_coff_link_add_one_symbol)
PARAMS ((struct bfd_link_info *, bfd *, const char *, flagword,
- asection *, bfd_vma, const char *, boolean, boolean,
+ asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean,
struct bfd_link_hash_entry **));
- boolean (*_bfd_coff_link_output_has_begun)
+ bfd_boolean (*_bfd_coff_link_output_has_begun)
PARAMS ((bfd *, struct coff_final_link_info *));
- boolean (*_bfd_coff_final_link_postscript)
+ bfd_boolean (*_bfd_coff_final_link_postscript)
PARAMS ((bfd *, struct coff_final_link_info *));
} bfd_coff_backend_data;
#define bfd_coff_set_arch_mach_hook(abfd, filehdr)\
((coff_backend_info (abfd)->_bfd_coff_set_arch_mach_hook) (abfd, filehdr))
#define bfd_coff_mkobject_hook(abfd, filehdr, aouthdr)\
- ((coff_backend_info (abfd)->_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, flags_ptr)\
((coff_backend_info (abfd)->_bfd_styp_to_sec_flags_hook)\
((coff_backend_info (abfd)->_bfd_coff_print_aux)\
(abfd, file, base, symbol, aux, indaux))
-#define bfd_coff_reloc16_extra_cases(abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr)\
+#define bfd_coff_reloc16_extra_cases(abfd, link_info, link_order,\
+ reloc, data, src_ptr, dst_ptr)\
((coff_backend_info (abfd)->_bfd_coff_reloc16_extra_cases)\
(abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr))
#define bfd_coff_adjust_symndx(obfd, info, ibfd, sec, rel, adjustedp)\
((coff_backend_info (abfd)->_bfd_coff_adjust_symndx)\
(obfd, info, ibfd, sec, rel, adjustedp))
-#define bfd_coff_link_add_one_symbol(info,abfd,name,flags,section,value,string,cp,coll,hashp)\
+#define bfd_coff_link_add_one_symbol(info, abfd, name, flags, section,\
+ value, string, cp, coll, hashp)\
((coff_backend_info (abfd)->_bfd_coff_link_add_one_symbol)\
(info, abfd, name, flags, section, value, string, cp, coll, hashp))