Orphan-Sections.html 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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 Binutils)
  5. version 2.28.
  6. Copyright (C) 1991-2017 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.2, 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="prev" 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="prev">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, but it has to guess as to where they should be
  71. placed. The linker uses a simple heuristic to do this. It
  72. attempts to place orphan sections after non-orphan sections of the
  73. same attribute, such as code vs data, loadable vs non-loadable, etc.
  74. If there is not enough room to do this then it places
  75. at the end of the file.
  76. </p>
  77. <p>For ELF targets, the attribute of the section includes section type as
  78. well as section flag.
  79. </p>
  80. <p>The command line options &lsquo;<samp>--orphan-handling</samp>&rsquo; and &lsquo;<samp>--unique</samp>&rsquo;
  81. (see <a href="Options.html#Options">Command Line Options</a>) can be used to control which
  82. output sections an orphan is placed in.
  83. </p>
  84. <p>If an orphaned section&rsquo;s name is representable as a C identifier then
  85. the linker will automatically see <a href="PROVIDE.html#PROVIDE">PROVIDE</a> two symbols:
  86. __start_SECNAME and __stop_SECNAME, where SECNAME is the name of the
  87. section. These indicate the start address and end address of the
  88. orphaned section respectively. Note: most section names are not
  89. representable as C identifiers because they contain a &lsquo;<samp>.</samp>&rsquo;
  90. character.
  91. </p>
  92. </body>
  93. </html>