<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This file documents the BFD library.

Copyright (C) 1991 - 2013 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being "GNU General Public License" and "Funding
Free Software", the Front-Cover texts being (a) (see below), and with
the Back-Cover Texts being (b) (see below).  A copy of the license is
included in the section entitled "GNU Free Documentation License".

(a) The FSF's Front-Cover Text is:

A GNU Manual

(b) The FSF's Back-Cover Text is:

You have freedom to copy and modify this GNU Manual, like GNU
     software.  Copies published by the Free Software Foundation raise
     funds for GNU development. -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Untitled Document: Targets</title>

<meta name="description" content="Untitled Document: Targets">
<meta name="keywords" content="Untitled Document: Targets">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="BFD-Index.html#BFD-Index" rel="index" title="BFD Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="BFD-front-end.html#BFD-front-end" rel="up" title="BFD front end">
<link href="bfd_005ftarget.html#bfd_005ftarget" rel="next" title="bfd_target">
<link href="Core-Files.html#Core-Files" rel="prev" title="Core Files">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Targets"></a>
<div class="header">
<p>
Next: <a href="Architectures.html#Architectures" accesskey="n" rel="next">Architectures</a>, Previous: <a href="Core-Files.html#Core-Files" accesskey="p" rel="prev">Core Files</a>, Up: <a href="BFD-front-end.html#BFD-front-end" accesskey="u" rel="up">BFD front end</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="BFD-Index.html#BFD-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Targets-1"></a>
<h3 class="section">2.12 Targets</h3>


<p><strong>Description</strong><br>
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&rsquo;s requests through a pointer into
calls to the back end routines.
</p>
<p>When a file is opened with <code>bfd_openr</code>, its format and
target are unknown. BFD uses various mechanisms to determine
how to interpret the file. The operations performed are:
</p>
<ul>
<li> Create a BFD by calling the internal routine
<code>_bfd_new_bfd</code>, then call <code>bfd_find_target</code> with the
target string supplied to <code>bfd_openr</code> and the new BFD pointer.

</li><li> If a null target string was provided to <code>bfd_find_target</code>,
look up the environment variable <code>GNUTARGET</code> and use
that as the target string.

</li><li> If the target string is still <code>NULL</code>, or the target string is
<code>default</code>, then use the first item in the target vector
as the target type, and set <code>target_defaulted</code> in the BFD to
cause <code>bfd_check_format</code> to loop through all the targets.
See <a href="bfd_005ftarget.html#bfd_005ftarget">bfd_target</a>.  See <a href="Formats.html#Formats">Formats</a>.

</li><li> Otherwise, inspect the elements in the target vector
one by one, until a match on target name is found. When found,
use it.

</li><li> Otherwise return the error <code>bfd_error_invalid_target</code> to
<code>bfd_openr</code>.

</li><li> <code>bfd_openr</code> attempts to open the file using
<code>bfd_open_file</code>, and returns the BFD.
</li></ul>
<p>Once the BFD has been opened and the target selected, the file
format may be determined. This is done by calling
<code>bfd_check_format</code> on the BFD with a suggested format.
If <code>target_defaulted</code> has been set, each possible target
type is tried to see if it recognizes the specified format.
<code>bfd_check_format</code> returns <code>TRUE</code> when the caller guesses right.
</p><table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="bfd_005ftarget.html#bfd_005ftarget" accesskey="1">bfd_target</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
</table>

<hr>
<div class="header">
<p>
Next: <a href="Architectures.html#Architectures" accesskey="n" rel="next">Architectures</a>, Previous: <a href="Core-Files.html#Core-Files" accesskey="p" rel="prev">Core Files</a>, Up: <a href="BFD-front-end.html#BFD-front-end" accesskey="u" rel="up">BFD front end</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="BFD-Index.html#BFD-Index" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>
