<html lang="en">
<head>
<title>Input Section Example - Untitled</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Untitled">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Input-Section.html#Input-Section" title="Input Section">
<link rel="prev" href="Input-Section-Keep.html#Input-Section-Keep" title="Input Section Keep">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This file documents the GNU linker LD
(GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10))
version 2.33.1.

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="Input-Section-Example"></a>
<p>
Previous:&nbsp;<a rel="previous" accesskey="p" href="Input-Section-Keep.html#Input-Section-Keep">Input Section Keep</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Input-Section.html#Input-Section">Input Section</a>
<hr>
</div>

<h5 class="subsubsection">3.6.4.5 Input Section Example</h5>

<p>The following example is a complete linker script.  It tells the linker
to read all of the sections from file <samp><span class="file">all.o</span></samp> and place them at the
start of output section &lsquo;<samp><span class="samp">outputa</span></samp>&rsquo; which starts at location
&lsquo;<samp><span class="samp">0x10000</span></samp>&rsquo;.  All of section &lsquo;<samp><span class="samp">.input1</span></samp>&rsquo; from file <samp><span class="file">foo.o</span></samp>
follows immediately, in the same output section.  All of section
&lsquo;<samp><span class="samp">.input2</span></samp>&rsquo; from <samp><span class="file">foo.o</span></samp> goes into output section
&lsquo;<samp><span class="samp">outputb</span></samp>&rsquo;, followed by section &lsquo;<samp><span class="samp">.input1</span></samp>&rsquo; from <samp><span class="file">foo1.o</span></samp>. 
All of the remaining &lsquo;<samp><span class="samp">.input1</span></samp>&rsquo; and &lsquo;<samp><span class="samp">.input2</span></samp>&rsquo; sections from any
files are written to output section &lsquo;<samp><span class="samp">outputc</span></samp>&rsquo;.

<pre class="smallexample">     SECTIONS {
       outputa 0x10000 :
         {
         all.o
         foo.o (.input1)
         }
       outputb :
         {
         foo.o (.input2)
         foo1.o (.input1)
         }
       outputc :
         {
         *(.input1)
         *(.input2)
         }
     }
</pre>
   <p>If an output section's name is the same as the input section's name
and is representable as a C identifier, then the linker will
automatically see <a href="PROVIDE.html#PROVIDE">PROVIDE</a> two symbols: __start_SECNAME and
__stop_SECNAME, where SECNAME is the name of the section.  These
indicate the start address and end address of the output section
respectively.  Note: most section names are not representable as
C identifiers because they contain a &lsquo;<samp><span class="samp">.</span></samp>&rsquo; character.

   </body></html>

