<html lang="en">
<head>
<title>Architecture 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="prev" href="Target-Selection.html#Target-Selection" title="Target 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="Architecture-Selection"></a>
<p>
Previous:&nbsp;<a rel="previous" accesskey="p" href="Target-Selection.html#Target-Selection">Target 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.2 Architecture Selection</h3>

<p>An <dfn>architecture</dfn> is a type of <span class="sc">cpu</span> on which an object file is
to run.  Its name may contain a colon, separating the name of the
processor family from the name of the particular <span class="sc">cpu</span>.

   <p>The command to list valid architecture values is &lsquo;<samp><span class="samp">objdump -i</span></samp>&rsquo; (the
second column contains the relevant information).

   <p>Sample values: &lsquo;<samp><span class="samp">m68k:68020</span></samp>&rsquo;, &lsquo;<samp><span class="samp">mips:3000</span></samp>&rsquo;, &lsquo;<samp><span class="samp">sparc</span></samp>&rsquo;.

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

<p>Ways to specify:

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

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

<h4 class="subheading"><samp><span class="command">objcopy</span></samp>, <samp><span class="command">nm</span></samp>, <samp><span class="command">size</span></samp>, <samp><span class="command">strings</span></samp> Architecture</h4>

<p>Ways to specify:

     <ol type=1 start=1>
<li>deduced from the input file
        </ol>

   </body></html>

