diff options
Diffstat (limited to 'contrib/binutils/bfd/doc/targets.texi')
-rw-r--r-- | contrib/binutils/bfd/doc/targets.texi | 36 |
1 files changed, 33 insertions, 3 deletions
diff --git a/contrib/binutils/bfd/doc/targets.texi b/contrib/binutils/bfd/doc/targets.texi index ccaaf40..50086c4 100644 --- a/contrib/binutils/bfd/doc/targets.texi +++ b/contrib/binutils/bfd/doc/targets.texi @@ -127,6 +127,7 @@ enum bfd_flavour @{ bfd_target_os9k_flavour, bfd_target_versados_flavour, bfd_target_msdos_flavour, + bfd_target_ovax_flavour, bfd_target_evax_flavour @}; @@ -219,7 +220,8 @@ Write cached information into a file being written, at @code{bfd_close}. @example boolean (*_bfd_write_contents[bfd_type_end]) PARAMS ((bfd *)); @end example -The general target vector. +The general target vector. These vectors are initialized using the +BFD_JUMP_TABLE macros. @example /* Generic entry points. */ @@ -388,7 +390,8 @@ CAT(NAME,_bfd_relax_section),\ CAT(NAME,_bfd_link_hash_table_create),\ CAT(NAME,_bfd_link_add_symbols),\ CAT(NAME,_bfd_final_link),\ -CAT(NAME,_bfd_link_split_section) +CAT(NAME,_bfd_link_split_section),\ +CAT(NAME,_bfd_gc_sections) int (*_bfd_sizeof_headers) PARAMS ((bfd *, boolean)); bfd_byte * (*_bfd_get_relocated_section_contents) PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, @@ -412,7 +415,10 @@ CAT(NAME,_bfd_link_split_section) /* Should this section be split up into smaller pieces during linking. */ boolean (*_bfd_link_split_section) PARAMS ((bfd *, struct sec *)); - /* Routines to handle dynamic symbols and relocs. */ + /* Remove sections that are not referenced from the output. */ + boolean (*_bfd_gc_sections) PARAMS ((bfd *, struct bfd_link_info *)); + + /* Routines to handle dynamic symbols and relocs. */ #define BFD_JUMP_TABLE_DYNAMIC(NAME)\ CAT(NAME,_get_dynamic_symtab_upper_bound),\ CAT(NAME,_canonicalize_dynamic_symtab),\ @@ -430,10 +436,21 @@ CAT(NAME,_canonicalize_dynamic_reloc) PARAMS ((bfd *, arelent **, struct symbol_cache_entry **)); @end example +A pointer to an alternative bfd_target in case the current one is not +satisfactory. This can happen when the target cpu supports both big +and little endian code, and target chosen by the linker has the wrong +endianness. The function open_output() in ld/ldlang.c uses this field +to find an alternative output format that is suitable. +@example + /* Opposite endian version of this target. */ + const struct bfd_target * alternative_target; + +@end example Data for use by back-end routines, which isn't generic enough to belong in this structure. @example PTR backend_data; + @} bfd_target; @end example @@ -476,3 +493,16 @@ Return a freshly malloced NULL-terminated vector of the names of all the valid BFD targets. Do not modify the names. +@findex bfd_seach_for_target +@subsubsection @code{bfd_seach_for_target} +@strong{Synopsis} +@example +const bfd_target * bfd_search_for_target (int (* search_func)(const bfd_target *, void *), void *); +@end example +@strong{Description}@* +Return a pointer to the first transfer vector in the list of +transfer vectors maintained by BFD that produces a non-zero +result when passed to the function @var{search_func}. The +parameter @var{data} is passed, unexamined, to the search +function. + |