1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2<html> 3<!-- This file documents the GNU linker LD 4(GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 5version 2.36.1. 6 7Copyright (C) 1991-2021 Free Software Foundation, Inc. 8 9Permission is granted to copy, distribute and/or modify this document 10under the terms of the GNU Free Documentation License, Version 1.3 11or any later version published by the Free Software Foundation; 12with no Invariant Sections, with no Front-Cover Texts, and with no 13Back-Cover Texts. A copy of the license is included in the 14section entitled "GNU Free Documentation License". --> 15<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ --> 16<head> 17<title>LD: Output Section Discarding</title> 18 19<meta name="description" content="LD: Output Section Discarding"> 20<meta name="keywords" content="LD: Output Section Discarding"> 21<meta name="resource-type" content="document"> 22<meta name="distribution" content="global"> 23<meta name="Generator" content="makeinfo"> 24<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 25<link href="index.html#Top" rel="start" title="Top"> 26<link href="LD-Index.html#LD-Index" rel="index" title="LD Index"> 27<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> 28<link href="SECTIONS.html#SECTIONS" rel="up" title="SECTIONS"> 29<link href="Output-Section-Attributes.html#Output-Section-Attributes" rel="next" title="Output Section Attributes"> 30<link href="Output-Section-Keywords.html#Output-Section-Keywords" rel="previous" title="Output Section Keywords"> 31<style type="text/css"> 32<!-- 33a.summary-letter {text-decoration: none} 34blockquote.smallquotation {font-size: smaller} 35div.display {margin-left: 3.2em} 36div.example {margin-left: 3.2em} 37div.indentedblock {margin-left: 3.2em} 38div.lisp {margin-left: 3.2em} 39div.smalldisplay {margin-left: 3.2em} 40div.smallexample {margin-left: 3.2em} 41div.smallindentedblock {margin-left: 3.2em; font-size: smaller} 42div.smalllisp {margin-left: 3.2em} 43kbd {font-style:oblique} 44pre.display {font-family: inherit} 45pre.format {font-family: inherit} 46pre.menu-comment {font-family: serif} 47pre.menu-preformatted {font-family: serif} 48pre.smalldisplay {font-family: inherit; font-size: smaller} 49pre.smallexample {font-size: smaller} 50pre.smallformat {font-family: inherit; font-size: smaller} 51pre.smalllisp {font-size: smaller} 52span.nocodebreak {white-space:nowrap} 53span.nolinebreak {white-space:nowrap} 54span.roman {font-family:serif; font-weight:normal} 55span.sansserif {font-family:sans-serif; font-weight:normal} 56ul.no-bullet {list-style: none} 57--> 58</style> 59 60 61</head> 62 63<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000"> 64<a name="Output-Section-Discarding"></a> 65<div class="header"> 66<p> 67Next: <a href="Output-Section-Attributes.html#Output-Section-Attributes" accesskey="n" rel="next">Output Section Attributes</a>, Previous: <a href="Output-Section-Keywords.html#Output-Section-Keywords" accesskey="p" rel="previous">Output Section Keywords</a>, Up: <a href="SECTIONS.html#SECTIONS" accesskey="u" rel="up">SECTIONS</a> [<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> 68</div> 69<hr> 70<a name="Output-Section-Discarding-1"></a> 71<h4 class="subsection">3.6.7 Output Section Discarding</h4> 72<a name="index-discarding-sections"></a> 73<a name="index-sections_002c-discarding"></a> 74<a name="index-removing-sections"></a> 75<p>The linker will not normally create output sections with no contents. 76This is for convenience when referring to input sections that may or 77may not be present in any of the input files. For example: 78</p><div class="smallexample"> 79<pre class="smallexample">.foo : { *(.foo) } 80</pre></div> 81<p>will only create a ‘<samp>.foo</samp>’ section in the output file if there is a 82‘<samp>.foo</samp>’ section in at least one input file, and if the input 83sections are not all empty. Other link script directives that allocate 84space in an output section will also create the output section. So 85too will assignments to dot even if the assignment does not create 86space, except for ‘<samp>. = 0</samp>’, ‘<samp>. = . + 0</samp>’, ‘<samp>. = sym</samp>’, 87‘<samp>. = . + sym</samp>’ and ‘<samp>. = ALIGN (. != 0, expr, 1)</samp>’ when 88‘<samp>sym</samp>’ is an absolute symbol of value 0 defined in the script. 89This allows you to force output of an empty section with ‘<samp>. = .</samp>’. 90</p> 91<p>The linker will ignore address assignments (see <a href="Output-Section-Address.html#Output-Section-Address">Output Section Address</a>) 92on discarded output sections, except when the linker script defines 93symbols in the output section. In that case the linker will obey 94the address assignments, possibly advancing dot even though the 95section is discarded. 96</p> 97<a name="index-_002fDISCARD_002f"></a> 98<p>The special output section name ‘<samp>/DISCARD/</samp>’ may be used to discard 99input sections. Any input sections which are assigned to an output 100section named ‘<samp>/DISCARD/</samp>’ are not included in the output file. 101</p> 102<p>This can be used to discard input sections marked with the ELF flag 103<code>SHF_GNU_RETAIN</code>, which would otherwise have been saved from linker 104garbage collection. 105</p> 106<p>Note, sections that match the ‘<samp>/DISCARD/</samp>’ output section will be 107discarded even if they are in an ELF section group which has other 108members which are not being discarded. This is deliberate. 109Discarding takes precedence over grouping. 110</p> 111<hr> 112<div class="header"> 113<p> 114Next: <a href="Output-Section-Attributes.html#Output-Section-Attributes" accesskey="n" rel="next">Output Section Attributes</a>, Previous: <a href="Output-Section-Keywords.html#Output-Section-Keywords" accesskey="p" rel="previous">Output Section Keywords</a>, Up: <a href="SECTIONS.html#SECTIONS" accesskey="u" rel="up">SECTIONS</a> [<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> 115</div> 116 117 118 119</body> 120</html> 121