\chapentry{Introduction}{1}{1}
\secentry{History}{1}{1}{1}
\secentry{How To Use BFD}{1}{2}{1}
\secentry{What BFD Version 2 Can Do}{1}{3}{2}
\subsecentry{Information Loss}{1}{3}{1}{2}
\subsecentry{The BFD canonical object-file format}{1}{3}{2}{3}
\chapentry{BFD front end}{2}{5}
\secentry{\code {typedef bfd}}{2}{1}{5}
\secentry{Error reporting}{2}{2}{8}
\subsecentry{Type \code {bfd_error_type}}{2}{2}{1}{8}
\subsubsecentry{\code {bfd_get_error}}{2}{2}{1}{1}{9}
\subsubsecentry{\code {bfd_set_error}}{2}{2}{1}{2}{9}
\subsubsecentry{\code {bfd_errmsg}}{2}{2}{1}{3}{9}
\subsubsecentry{\code {bfd_perror}}{2}{2}{1}{4}{9}
\subsecentry{BFD error handler}{2}{2}{2}{9}
\subsubsecentry{\code {bfd_set_error_handler}}{2}{2}{2}{1}{10}
\subsubsecentry{\code {bfd_set_error_program_name}}{2}{2}{2}{2}{10}
\subsubsecentry{\code {bfd_get_error_handler}}{2}{2}{2}{3}{10}
\secentry{Symbols}{2}{3}{10}
\subsubsecentry{\code {bfd_get_reloc_upper_bound}}{2}{3}{0}{1}{10}
\subsubsecentry{\code {bfd_canonicalize_reloc}}{2}{3}{0}{2}{10}
\subsubsecentry{\code {bfd_set_reloc}}{2}{3}{0}{3}{11}
\subsubsecentry{\code {bfd_set_file_flags}}{2}{3}{0}{4}{11}
\subsubsecentry{\code {bfd_set_start_address}}{2}{3}{0}{5}{11}
\subsubsecentry{\code {bfd_get_mtime}}{2}{3}{0}{6}{11}
\subsubsecentry{\code {bfd_get_size}}{2}{3}{0}{7}{11}
\subsubsecentry{\code {bfd_get_gp_size}}{2}{3}{0}{8}{12}
\subsubsecentry{\code {bfd_set_gp_size}}{2}{3}{0}{9}{12}
\subsubsecentry{\code {bfd_scan_vma}}{2}{3}{0}{10}{12}
\subsubsecentry{\code {bfd_copy_private_bfd_data}}{2}{3}{0}{11}{12}
\subsubsecentry{\code {bfd_merge_private_bfd_data}}{2}{3}{0}{12}{13}
\subsubsecentry{\code {bfd_set_private_flags}}{2}{3}{0}{13}{13}
\subsubsecentry{\code {stuff}}{2}{3}{0}{14}{13}
\secentry{Memory usage}{2}{4}{15}
\secentry{Initialization}{2}{5}{15}
\subsubsecentry{\code {bfd_init}}{2}{5}{0}{1}{15}
\secentry{Sections}{2}{6}{15}
\subsecentry{Section input}{2}{6}{1}{15}
\subsecentry{Section output}{2}{6}{2}{16}
\subsecentry{Link orders}{2}{6}{3}{16}
\subsecentry{typedef asection}{2}{6}{4}{17}
\subsecentry{Section prototypes}{2}{6}{5}{24}
\subsubsecentry{\code {bfd_get_section_by_name}}{2}{6}{5}{1}{24}
\subsubsecentry{\code {bfd_make_section_old_way}}{2}{6}{5}{2}{24}
\subsubsecentry{\code {bfd_make_section_anyway}}{2}{6}{5}{3}{25}
\subsubsecentry{\code {bfd_make_section}}{2}{6}{5}{4}{25}
\subsubsecentry{\code {bfd_set_section_flags}}{2}{6}{5}{5}{25}
\subsubsecentry{\code {bfd_map_over_sections}}{2}{6}{5}{6}{25}
\subsubsecentry{\code {bfd_set_section_size}}{2}{6}{5}{7}{26}
\subsubsecentry{\code {bfd_set_section_contents}}{2}{6}{5}{8}{26}
\subsubsecentry{\code {bfd_get_section_contents}}{2}{6}{5}{9}{26}
\subsubsecentry{\code {bfd_copy_private_section_data}}{2}{6}{5}{10}{27}
\subsubsecentry{\code {_bfd_strip_section_from_output}}{2}{6}{5}{11}{27}
\secentry{Symbols}{2}{7}{27}
\subsecentry{Reading symbols}{2}{7}{1}{27}
\subsecentry{Writing symbols}{2}{7}{2}{28}
\subsecentry{Mini Symbols}{2}{7}{3}{29}
\subsecentry{typedef asymbol}{2}{7}{4}{29}
\subsecentry{Symbol handling functions}{2}{7}{5}{32}
\subsubsecentry{\code {bfd_get_symtab_upper_bound}}{2}{7}{5}{1}{32}
\subsubsecentry{\code {bfd_is_local_label}}{2}{7}{5}{2}{32}
\subsubsecentry{\code {bfd_is_local_label_name}}{2}{7}{5}{3}{32}
\subsubsecentry{\code {bfd_canonicalize_symtab}}{2}{7}{5}{4}{32}
\subsubsecentry{\code {bfd_set_symtab}}{2}{7}{5}{5}{33}
\subsubsecentry{\code {bfd_print_symbol_vandf}}{2}{7}{5}{6}{33}
\subsubsecentry{\code {bfd_make_empty_symbol}}{2}{7}{5}{7}{33}
\subsubsecentry{\code {bfd_make_debug_symbol}}{2}{7}{5}{8}{33}
\subsubsecentry{\code {bfd_decode_symclass}}{2}{7}{5}{9}{33}
\subsubsecentry{\code {bfd_is_undefined_symclass }}{2}{7}{5}{10}{33}
\subsubsecentry{\code {bfd_symbol_info}}{2}{7}{5}{11}{34}
\subsubsecentry{\code {bfd_copy_private_symbol_data}}{2}{7}{5}{12}{34}
\secentry{Archives}{2}{8}{34}
\subsubsecentry{\code {bfd_get_next_mapent}}{2}{8}{0}{1}{35}
\subsubsecentry{\code {bfd_set_archive_head}}{2}{8}{0}{2}{35}
\subsubsecentry{\code {bfd_openr_next_archived_file}}{2}{8}{0}{3}{35}
\secentry{File formats}{2}{9}{35}
\subsubsecentry{\code {bfd_check_format}}{2}{9}{0}{1}{36}
\subsubsecentry{\code {bfd_check_format_matches}}{2}{9}{0}{2}{36}
\subsubsecentry{\code {bfd_set_format}}{2}{9}{0}{3}{36}
\subsubsecentry{\code {bfd_format_string}}{2}{9}{0}{4}{36}
\secentry{Relocations}{2}{10}{37}
\subsecentry{typedef arelent}{2}{10}{1}{37}
\subsubsecentry{\code {enum complain_overflow}}{2}{10}{1}{1}{40}
\subsubsecentry{\code {reloc_howto_type}}{2}{10}{1}{2}{40}
\subsubsecentry{\code {The HOWTO Macro}}{2}{10}{1}{3}{42}
\subsubsecentry{\code {bfd_get_reloc_size}}{2}{10}{1}{4}{43}
\subsubsecentry{\code {arelent_chain}}{2}{10}{1}{5}{43}
\subsubsecentry{\code {bfd_check_overflow}}{2}{10}{1}{6}{43}
\subsubsecentry{\code {bfd_perform_relocation}}{2}{10}{1}{7}{44}
\subsubsecentry{\code {bfd_install_relocation}}{2}{10}{1}{8}{44}
\secentry{The howto manager}{2}{11}{44}
\subsubsecentry{\code {bfd_reloc_code_type}}{2}{11}{0}{1}{44}
\subsubsecentry{\code {bfd_reloc_type_lookup}}{2}{11}{0}{2}{59}
\subsubsecentry{\code {bfd_default_reloc_type_lookup}}{2}{11}{0}{3}{59}
\subsubsecentry{\code {bfd_get_reloc_code_name}}{2}{11}{0}{4}{59}
\subsubsecentry{\code {bfd_generic_relax_section}}{2}{11}{0}{5}{59}
\subsubsecentry{\code {bfd_generic_gc_sections}}{2}{11}{0}{6}{60}
\subsubsecentry{\code {bfd_generic_get_relocated_section_contents}}{2}{11}{0}{7}{60}
\secentry{Core files}{2}{12}{60}
\subsubsecentry{\code {bfd_core_file_failing_command}}{2}{12}{0}{1}{60}
\subsubsecentry{\code {bfd_core_file_failing_signal}}{2}{12}{0}{2}{60}
\subsubsecentry{\code {core_file_matches_executable_p}}{2}{12}{0}{3}{60}
\secentry{Targets}{2}{13}{61}
\subsecentry{bfd_target}{2}{13}{1}{61}
\subsubsecentry{\code {bfd_set_default_target}}{2}{13}{1}{1}{68}
\subsubsecentry{\code {bfd_find_target}}{2}{13}{1}{2}{68}
\subsubsecentry{\code {bfd_target_list}}{2}{13}{1}{3}{69}
\subsubsecentry{\code {bfd_seach_for_target}}{2}{13}{1}{4}{69}
\secentry{Architectures}{2}{14}{69}
\subsecentry{bfd_architecture}{2}{14}{1}{69}
\subsecentry{bfd_arch_info}{2}{14}{2}{72}
\subsubsecentry{\code {bfd_printable_name}}{2}{14}{2}{1}{73}
\subsubsecentry{\code {bfd_scan_arch}}{2}{14}{2}{2}{73}
\subsubsecentry{\code {bfd_arch_list}}{2}{14}{2}{3}{73}
\subsubsecentry{\code {bfd_arch_get_compatible}}{2}{14}{2}{4}{73}
\subsubsecentry{\code {bfd_default_arch_struct}}{2}{14}{2}{5}{74}
\subsubsecentry{\code {bfd_set_arch_info}}{2}{14}{2}{6}{74}
\subsubsecentry{\code {bfd_default_set_arch_mach}}{2}{14}{2}{7}{74}
\subsubsecentry{\code {bfd_get_arch}}{2}{14}{2}{8}{74}
\subsubsecentry{\code {bfd_get_mach}}{2}{14}{2}{9}{74}
\subsubsecentry{\code {bfd_arch_bits_per_byte}}{2}{14}{2}{10}{74}
\subsubsecentry{\code {bfd_arch_bits_per_address}}{2}{14}{2}{11}{75}
\subsubsecentry{\code {bfd_default_compatible}}{2}{14}{2}{12}{75}
\subsubsecentry{\code {bfd_default_scan}}{2}{14}{2}{13}{75}
\subsubsecentry{\code {bfd_get_arch_info}}{2}{14}{2}{14}{75}
\subsubsecentry{\code {bfd_lookup_arch}}{2}{14}{2}{15}{75}
\subsubsecentry{\code {bfd_printable_arch_mach}}{2}{14}{2}{16}{75}
\subsubsecentry{\code {bfd_octets_per_byte}}{2}{14}{2}{17}{76}
\subsubsecentry{\code {bfd_arch_mach_octets_per_byte}}{2}{14}{2}{18}{76}
\secentry{Opening and closing BFDs}{2}{15}{76}
\subsubsecentry{\code {bfd_openr}}{2}{15}{0}{1}{76}
\subsubsecentry{\code {bfd_fdopenr}}{2}{15}{0}{2}{76}
\subsubsecentry{\code {bfd_openstreamr}}{2}{15}{0}{3}{77}
\subsubsecentry{\code {bfd_openw}}{2}{15}{0}{4}{77}
\subsubsecentry{\code {bfd_close}}{2}{15}{0}{5}{77}
\subsubsecentry{\code {bfd_close_all_done}}{2}{15}{0}{6}{77}
\subsubsecentry{\code {bfd_create}}{2}{15}{0}{7}{78}
\subsubsecentry{\code {bfd_make_writable}}{2}{15}{0}{8}{78}
\subsubsecentry{\code {bfd_make_readable}}{2}{15}{0}{9}{78}
\subsubsecentry{\code {bfd_alloc}}{2}{15}{0}{10}{78}
\secentry{Internal functions}{2}{16}{78}
\subsubsecentry{\code {bfd_write_bigendian_4byte_int}}{2}{16}{0}{1}{78}
\subsubsecentry{\code {bfd_put_size}}{2}{16}{0}{2}{79}
\subsubsecentry{\code {bfd_get_size}}{2}{16}{0}{3}{79}
\subsubsecentry{\code {bfd_h_put_size}}{2}{16}{0}{4}{80}
\subsubsecentry{\code {bfd_log2}}{2}{16}{0}{5}{81}
\secentry{File caching}{2}{17}{81}
\subsubsecentry{\code {BFD_CACHE_MAX_OPEN macro}}{2}{17}{0}{1}{81}
\subsubsecentry{\code {bfd_last_cache}}{2}{17}{0}{2}{81}
\subsubsecentry{\code {bfd_cache_lookup}}{2}{17}{0}{3}{82}
\subsubsecentry{\code {bfd_cache_init}}{2}{17}{0}{4}{82}
\subsubsecentry{\code {bfd_cache_close}}{2}{17}{0}{5}{82}
\subsubsecentry{\code {bfd_open_file}}{2}{17}{0}{6}{82}
\subsubsecentry{\code {bfd_cache_lookup_worker}}{2}{17}{0}{7}{82}
\secentry{Linker Functions}{2}{18}{83}
\subsecentry{Creating a linker hash table}{2}{18}{1}{83}
\subsecentry{Adding symbols to the hash table}{2}{18}{2}{83}
\subsubsecentry{Differing file formats}{2}{18}{2}{1}{84}
\subsubsecentry{Adding symbols from an object file}{2}{18}{2}{2}{84}
\subsubsecentry{Adding symbols from an archive}{2}{18}{2}{3}{85}
\subsecentry{Performing the final link}{2}{18}{3}{85}
\subsubsecentry{Information provided by the linker}{2}{18}{3}{1}{86}
\subsubsecentry{Relocating the section contents}{2}{18}{3}{2}{86}
\subsubsecentry{Writing the symbol table}{2}{18}{3}{3}{87}
\subsubsecentry{\code {bfd_link_split_section}}{2}{18}{3}{4}{87}
\secentry{Hash Tables}{2}{19}{87}
\subsecentry{Creating and freeing a hash table}{2}{19}{1}{88}
\subsecentry{Looking up or entering a string}{2}{19}{2}{88}
\subsecentry{Traversing a hash table}{2}{19}{3}{88}
\subsecentry{Deriving a new hash table type}{2}{19}{4}{89}
\subsubsecentry{Define the derived structures}{2}{19}{4}{1}{89}
\subsubsecentry{Write the derived creation routine}{2}{19}{4}{2}{89}
\subsubsecentry{Write other derived routines}{2}{19}{4}{3}{90}
\chapentry{BFD back ends}{3}{92}
\secentry{a.out backends}{3}{1}{92}
\subsecentry{Relocations}{3}{1}{1}{93}
\subsecentry{Internal entry points}{3}{1}{2}{93}
\subsubsecentry{\code {aout_\var {size}_swap_exec_header_in}}{3}{1}{2}{1}{93}
\subsubsecentry{\code {aout_\var {size}_swap_exec_header_out}}{3}{1}{2}{2}{93}
\subsubsecentry{\code {aout_\var {size}_some_aout_object_p}}{3}{1}{2}{3}{94}
\subsubsecentry{\code {aout_\var {size}_mkobject}}{3}{1}{2}{4}{94}
\subsubsecentry{\code {aout_\var {size}_machine_type}}{3}{1}{2}{5}{94}
\subsubsecentry{\code {aout_\var {size}_set_arch_mach}}{3}{1}{2}{6}{94}
\subsubsecentry{\code {aout_\var {size}_new_section_hook}}{3}{1}{2}{7}{94}
\secentry{coff backends}{3}{2}{95}
\subsecentry{Porting to a new version of coff}{3}{2}{1}{95}
\subsecentry{How the coff backend works}{3}{2}{2}{95}
\subsubsecentry{File layout}{3}{2}{2}{1}{95}
\subsubsecentry{Bit twiddling}{3}{2}{2}{2}{96}
\subsubsecentry{Symbol reading}{3}{2}{2}{3}{96}
\subsubsecentry{Symbol writing}{3}{2}{2}{4}{97}
\subsubsecentry{\code {coff_symbol_type}}{3}{2}{2}{5}{97}
\subsubsecentry{\code {bfd_coff_backend_data}}{3}{2}{2}{6}{99}
\subsubsecentry{Writing relocations}{3}{2}{2}{7}{105}
\subsubsecentry{Reading linenumbers}{3}{2}{2}{8}{105}
\subsubsecentry{Reading relocations}{3}{2}{2}{9}{106}
\secentry{ELF backends}{3}{3}{106}
\subsubsecentry{\code {bfd_elf_find_section}}{3}{3}{0}{1}{106}
\unnumbchapentry{Index}{107}
