<html lang="en">
<head>
<title>Target Selection - GNU Binary Utilities</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="GNU Binary Utilities">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Selecting-the-Target-System.html#Selecting-the-Target-System" title="Selecting the Target System">
<link rel="next" href="Architecture-Selection.html#Architecture-Selection" title="Architecture Selection">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
Copyright (C) 1991-2019 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''.

-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
  span.sc    { font-variant:small-caps }
  span.roman { font-family:serif; font-weight:normal; } 
  span.sansserif { font-family:sans-serif; font-weight:normal; } 
--></style>
</head>
<body>
<div class="node">
<a name="Target-Selection"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Architecture-Selection.html#Architecture-Selection">Architecture Selection</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Selecting-the-Target-System.html#Selecting-the-Target-System">Selecting the Target System</a>
<hr>
</div>

<h3 class="section">17.1 Target Selection</h3>

<p>A <dfn>target</dfn> 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>The command to list valid target values is &lsquo;<samp><span class="samp">objdump -i</span></samp>&rsquo;
(the first column of output contains the relevant information).

   <p>Some sample values are: &lsquo;<samp><span class="samp">a.out-hp300bsd</span></samp>&rsquo;, &lsquo;<samp><span class="samp">ecoff-littlemips</span></samp>&rsquo;,
&lsquo;<samp><span class="samp">a.out-sunos-big</span></samp>&rsquo;.

   <p>You can also specify a target using a configuration triplet.  This is
the same sort of name that is passed to <samp><span class="file">configure</span></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><span class="file">config.sub</span></samp> which is included with the
sources.

   <p>Some sample configuration triplets are: &lsquo;<samp><span class="samp">m68k-hp-bsd</span></samp>&rsquo;,
&lsquo;<samp><span class="samp">mips-dec-ultrix</span></samp>&rsquo;, &lsquo;<samp><span class="samp">sparc-sun-sunos</span></samp>&rsquo;.

<h4 class="subheading"><samp><span class="command">objdump</span></samp> Target</h4>

<p>Ways to specify:

     <ol type=1 start=1>
<li>command-line option: <samp><span class="option">-b</span></samp> or <samp><span class="option">--target</span></samp>

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

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

<h4 class="subheading"><samp><span class="command">objcopy</span></samp> and <samp><span class="command">strip</span></samp> Input Target</h4>

<p>Ways to specify:

     <ol type=1 start=1>
<li>command-line options: <samp><span class="option">-I</span></samp> or <samp><span class="option">--input-target</span></samp>, or <samp><span class="option">-F</span></samp> or <samp><span class="option">--target</span></samp>

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

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

<h4 class="subheading"><samp><span class="command">objcopy</span></samp> and <samp><span class="command">strip</span></samp> Output Target</h4>

<p>Ways to specify:

     <ol type=1 start=1>
<li>command-line options: <samp><span class="option">-O</span></samp> or <samp><span class="option">--output-target</span></samp>, or <samp><span class="option">-F</span></samp> or <samp><span class="option">--target</span></samp>

     <li>the input target (see &ldquo;<samp><span class="command">objcopy</span></samp> and <samp><span class="command">strip</span></samp> Input Target&rdquo; above)

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

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

<h4 class="subheading"><samp><span class="command">nm</span></samp>, <samp><span class="command">size</span></samp>, and <samp><span class="command">strings</span></samp> Target</h4>

<p>Ways to specify:

     <ol type=1 start=1>
<li>command-line option: <samp><span class="option">--target</span></samp>

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

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

   </body></html>

