toolchain/gcc-linaro-6.3.1-2017.02-x8.../share/doc/ld.html/Input-Section-Common.html

111 lines
5.0 KiB
HTML
Raw Permalink Normal View History

2024-03-22 05:10:17 +00:00
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This file documents the GNU linker LD
(Linaro_Binutils-2017.02)
version 2.27.0.
Copyright (C) 1991-2016 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>LD: Input Section Common</title>
<meta name="description" content="LD: Input Section Common">
<meta name="keywords" content="LD: Input Section Common">
<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="LD-Index.html#LD-Index" rel="index" title="LD Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Input-Section.html#Input-Section" rel="up" title="Input Section">
<link href="Input-Section-Keep.html#Input-Section-Keep" rel="next" title="Input Section Keep">
<link href="Input-Section-Wildcards.html#Input-Section-Wildcards" rel="prev" title="Input Section Wildcards">
<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="Input-Section-Common"></a>
<div class="header">
<p>
Next: <a href="Input-Section-Keep.html#Input-Section-Keep" accesskey="n" rel="next">Input Section Keep</a>, Previous: <a href="Input-Section-Wildcards.html#Input-Section-Wildcards" accesskey="p" rel="prev">Input Section Wildcards</a>, Up: <a href="Input-Section.html#Input-Section" accesskey="u" rel="up">Input Section</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="LD-Index.html#LD-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Input-Section-for-Common-Symbols"></a>
<h4 class="subsubsection">3.6.4.3 Input Section for Common Symbols</h4>
<a name="index-common-symbol-placement"></a>
<a name="index-uninitialized-data-placement"></a>
<p>A special notation is needed for common symbols, because in many object
file formats common symbols do not have a particular input section. The
linker treats common symbols as though they are in an input section
named &lsquo;<samp>COMMON</samp>&rsquo;.
</p>
<p>You may use file names with the &lsquo;<samp>COMMON</samp>&rsquo; section just as with any
other input sections. You can use this to place common symbols from a
particular input file in one section while common symbols from other
input files are placed in another section.
</p>
<p>In most cases, common symbols in input files will be placed in the
&lsquo;<samp>.bss</samp>&rsquo; section in the output file. For example:
</p><div class="smallexample">
<pre class="smallexample">.bss { *(.bss) *(COMMON) }
</pre></div>
<a name="index-scommon-section"></a>
<a name="index-small-common-symbols"></a>
<p>Some object file formats have more than one type of common symbol. For
example, the MIPS ELF object file format distinguishes standard common
symbols and small common symbols. In this case, the linker will use a
different special section name for other types of common symbols. In
the case of MIPS ELF, the linker uses &lsquo;<samp>COMMON</samp>&rsquo; for standard common
symbols and &lsquo;<samp>.scommon</samp>&rsquo; for small common symbols. This permits you
to map the different types of common symbols into memory at different
locations.
</p>
<a name="index-_005bCOMMON_005d"></a>
<p>You will sometimes see &lsquo;<samp>[COMMON]</samp>&rsquo; in old linker scripts. This
notation is now considered obsolete. It is equivalent to
&lsquo;<samp>*(COMMON)</samp>&rsquo;.
</p>
</body>
</html>