<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- 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 no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts.  A copy of the license is included in the
section entitled "GNU Free Documentation License".
 -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>GNU Binary Utilities: Target Selection</title>

<meta name="description" content="GNU Binary Utilities: Target Selection">
<meta name="keywords" content="GNU Binary Utilities: Target Selection">
<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="Binutils-Index.html#Binutils-Index" rel="index" title="Binutils Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Selecting-the-Target-System.html#Selecting-the-Target-System" rel="up" title="Selecting the Target System">
<link href="Architecture-Selection.html#Architecture-Selection" rel="next" title="Architecture Selection">
<link href="Selecting-the-Target-System.html#Selecting-the-Target-System" rel="prev" title="Selecting the Target System">
<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="Target-Selection"></a>
<div class="header">
<p>
Next: <a href="Architecture-Selection.html#Architecture-Selection" accesskey="n" rel="next">Architecture Selection</a>, Up: <a href="Selecting-the-Target-System.html#Selecting-the-Target-System" accesskey="u" rel="up">Selecting the Target System</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Binutils-Index.html#Binutils-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Target-Selection-1"></a>
<h3 class="section">18.1 Target Selection</h3>

<p>A <em>target</em> is an object file format.  A given target may be
supported for multiple architectures (see <a href="Architecture-Selection.html#Architecture-Selection">Architecture Selection</a>).
A target selection may also have variations for different operating
systems or architectures.
</p>
<p>The command to list valid target values is &lsquo;<samp>objdump -i</samp>&rsquo;
(the first column of output contains the relevant information).
</p>
<p>Some sample values are: &lsquo;<samp>a.out-hp300bsd</samp>&rsquo;, &lsquo;<samp>ecoff-littlemips</samp>&rsquo;,
&lsquo;<samp>a.out-sunos-big</samp>&rsquo;.
</p>
<p>You can also specify a target using a configuration triplet.  This is
the same sort of name that is passed to <samp>configure</samp> to specify a
target.  When you use a configuration triplet as an argument, it must be
fully canonicalized.  You can see the canonical version of a triplet by
running the shell script <samp>config.sub</samp> which is included with the
sources.
</p>
<p>Some sample configuration triplets are: &lsquo;<samp>m68k-hp-bsd</samp>&rsquo;,
&lsquo;<samp>mips-dec-ultrix</samp>&rsquo;, &lsquo;<samp>sparc-sun-sunos</samp>&rsquo;.
</p>
<a name="objdump-Target"></a>
<h4 class="subheading"><code>objdump</code> Target</h4>

<p>Ways to specify:
</p>
<ol>
<li> command line option: <samp>-b</samp> or <samp>--target</samp>

</li><li> environment variable <code>GNUTARGET</code>

</li><li> deduced from the input file
</li></ol>

<a name="objcopy-and-strip-Input-Target"></a>
<h4 class="subheading"><code>objcopy</code> and <code>strip</code> Input Target</h4>

<p>Ways to specify:
</p>
<ol>
<li> command line options: <samp>-I</samp> or <samp>--input-target</samp>, or <samp>-F</samp> or <samp>--target</samp>

</li><li> environment variable <code>GNUTARGET</code>

</li><li> deduced from the input file
</li></ol>

<a name="objcopy-and-strip-Output-Target"></a>
<h4 class="subheading"><code>objcopy</code> and <code>strip</code> Output Target</h4>

<p>Ways to specify:
</p>
<ol>
<li> command line options: <samp>-O</samp> or <samp>--output-target</samp>, or <samp>-F</samp> or <samp>--target</samp>

</li><li> the input target (see &ldquo;<code>objcopy</code> and <code>strip</code> Input Target&rdquo; above)

</li><li> environment variable <code>GNUTARGET</code>

</li><li> deduced from the input file
</li></ol>

<a name="nm_002c-size_002c-and-strings-Target"></a>
<h4 class="subheading"><code>nm</code>, <code>size</code>, and <code>strings</code> Target</h4>

<p>Ways to specify:
</p>
<ol>
<li> command line option: <samp>--target</samp>

</li><li> environment variable <code>GNUTARGET</code>

</li><li> deduced from the input file
</li></ol>

<hr>
<div class="header">
<p>
Next: <a href="Architecture-Selection.html#Architecture-Selection" accesskey="n" rel="next">Architecture Selection</a>, Up: <a href="Selecting-the-Target-System.html#Selecting-the-Target-System" accesskey="u" rel="up">Selecting the Target System</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Binutils-Index.html#Binutils-Index" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>
