Description
Each port of BFD to a different machine requires the creation
of a target back end. All the back end provides to the root
part of BFD is a structure containing pointers to functions
which perform certain low level operations on files. BFD
translates the applications's requests through a pointer into
calls to the back end routines.
When a file is opened with bfd_openr, its format and
target are unknown. BFD uses various mechanisms to determine
how to interpret the file. The operations performed are:
_bfd_new_bfd, then call bfd_find_target with the
target string supplied to bfd_openr and the new BFD pointer.
bfd_find_target,
look up the environment variable GNUTARGET and use
that as the target string.
NULL, or the target string is
default, then use the first item in the target vector
as the target type, and set target_defaulted in the BFD to
cause bfd_check_format to loop through all the targets.
See bfd_target. See Formats.
bfd_error_invalid_target to
bfd_openr.
bfd_openr attempts to open the file using
bfd_open_file, and returns the BFD.
bfd_check_format on the BFD with a suggested format.
If target_defaulted has been set, each possible target
type is tried to see if it recognizes the specified format.
bfd_check_format returns TRUE when the caller guesses right.