Orphan-Sections.html 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  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.2-2020.11 (arm-10.16))
  5. version 2.35.1.
  6. Copyright (C) 1991-2020 Free Software Foundation, Inc.
  7. Permission is granted to copy, distribute and/or modify this document
  8. under the terms of the GNU Free Documentation License, Version 1.3
  9. or any later version published by the Free Software Foundation;
  10. with no Invariant Sections, with no Front-Cover Texts, and with no
  11. Back-Cover Texts. A copy of the license is included in the
  12. section entitled "GNU Free Documentation License". -->
  13. <!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
  14. <head>
  15. <title>LD: Orphan Sections</title>
  16. <meta name="description" content="LD: Orphan Sections">
  17. <meta name="keywords" content="LD: Orphan Sections">
  18. <meta name="resource-type" content="document">
  19. <meta name="distribution" content="global">
  20. <meta name="Generator" content="makeinfo">
  21. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  22. <link href="index.html#Top" rel="start" title="Top">
  23. <link href="LD-Index.html#LD-Index" rel="index" title="LD Index">
  24. <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
  25. <link href="Expressions.html#Expressions" rel="up" title="Expressions">
  26. <link href="Location-Counter.html#Location-Counter" rel="next" title="Location Counter">
  27. <link href="Symbols.html#Symbols" rel="previous" title="Symbols">
  28. <style type="text/css">
  29. <!--
  30. a.summary-letter {text-decoration: none}
  31. blockquote.smallquotation {font-size: smaller}
  32. div.display {margin-left: 3.2em}
  33. div.example {margin-left: 3.2em}
  34. div.indentedblock {margin-left: 3.2em}
  35. div.lisp {margin-left: 3.2em}
  36. div.smalldisplay {margin-left: 3.2em}
  37. div.smallexample {margin-left: 3.2em}
  38. div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
  39. div.smalllisp {margin-left: 3.2em}
  40. kbd {font-style:oblique}
  41. pre.display {font-family: inherit}
  42. pre.format {font-family: inherit}
  43. pre.menu-comment {font-family: serif}
  44. pre.menu-preformatted {font-family: serif}
  45. pre.smalldisplay {font-family: inherit; font-size: smaller}
  46. pre.smallexample {font-size: smaller}
  47. pre.smallformat {font-family: inherit; font-size: smaller}
  48. pre.smalllisp {font-size: smaller}
  49. span.nocodebreak {white-space:nowrap}
  50. span.nolinebreak {white-space:nowrap}
  51. span.roman {font-family:serif; font-weight:normal}
  52. span.sansserif {font-family:sans-serif; font-weight:normal}
  53. ul.no-bullet {list-style: none}
  54. -->
  55. </style>
  56. </head>
  57. <body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
  58. <a name="Orphan-Sections"></a>
  59. <div class="header">
  60. <p>
  61. Next: <a href="Location-Counter.html#Location-Counter" accesskey="n" rel="next">Location Counter</a>, Previous: <a href="Symbols.html#Symbols" accesskey="p" rel="previous">Symbols</a>, Up: <a href="Expressions.html#Expressions" accesskey="u" rel="up">Expressions</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>
  62. </div>
  63. <hr>
  64. <a name="Orphan-Sections-1"></a>
  65. <h4 class="subsection">3.10.4 Orphan Sections</h4>
  66. <a name="index-orphan"></a>
  67. <p>Orphan sections are sections present in the input files which
  68. are not explicitly placed into the output file by the linker
  69. script. The linker will still copy these sections into the
  70. output file by either finding, or creating a suitable output section
  71. in which to place the orphaned input section.
  72. </p>
  73. <p>If the name of an orphaned input section exactly matches the name of
  74. an existing output section, then the orphaned input section will be
  75. placed at the end of that output section.
  76. </p>
  77. <p>If there is no output section with a matching name then new output
  78. sections will be created. Each new output section will have the same
  79. name as the orphan section placed within it. If there are multiple
  80. orphan sections with the same name, these will all be combined into
  81. one new output section.
  82. </p>
  83. <p>If new output sections are created to hold orphaned input sections,
  84. then the linker must decide where to place these new output sections
  85. in relation to existing output sections. On most modern targets, the
  86. linker attempts to place orphan sections after sections of the same
  87. attribute, such as code vs data, loadable vs non-loadable, etc. If no
  88. sections with matching attributes are found, or your target lacks this
  89. support, the orphan section is placed at the end of the file.
  90. </p>
  91. <p>The command-line options &lsquo;<samp>--orphan-handling</samp>&rsquo; and &lsquo;<samp>--unique</samp>&rsquo;
  92. (see <a href="Options.html#Options">Command-line Options</a>) can be used to control which
  93. output sections an orphan is placed in.
  94. </p>
  95. </body>
  96. </html>