Information-provided-by-the-linker.html 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  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 BFD library.
  4. Copyright (C) 1991-2017 Free Software Foundation, Inc.
  5. Permission is granted to copy, distribute and/or modify this document
  6. under the terms of the GNU Free Documentation License, Version 1.3 or
  7. any later version published by the Free Software Foundation; with the
  8. Invariant Sections being "GNU General Public License" and "Funding
  9. Free Software", the Front-Cover texts being (a) (see below), and with
  10. the Back-Cover Texts being (b) (see below). A copy of the license is
  11. included in the section entitled "GNU Free Documentation License".
  12. (a) The FSF's Front-Cover Text is:
  13. A GNU Manual
  14. (b) The FSF's Back-Cover Text is:
  15. You have freedom to copy and modify this GNU Manual, like GNU
  16. software. Copies published by the Free Software Foundation raise
  17. funds for GNU development. -->
  18. <!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
  19. <head>
  20. <title>Untitled Document: Information provided by the linker</title>
  21. <meta name="description" content="Untitled Document: Information provided by the linker">
  22. <meta name="keywords" content="Untitled Document: Information provided by the linker">
  23. <meta name="resource-type" content="document">
  24. <meta name="distribution" content="global">
  25. <meta name="Generator" content="makeinfo">
  26. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  27. <link href="index.html#Top" rel="start" title="Top">
  28. <link href="BFD-Index.html#BFD-Index" rel="index" title="BFD Index">
  29. <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
  30. <link href="Performing-the-Final-Link.html#Performing-the-Final-Link" rel="up" title="Performing the Final Link">
  31. <link href="Relocating-the-section-contents.html#Relocating-the-section-contents" rel="next" title="Relocating the section contents">
  32. <link href="Performing-the-Final-Link.html#Performing-the-Final-Link" rel="prev" title="Performing the Final Link">
  33. <style type="text/css">
  34. <!--
  35. a.summary-letter {text-decoration: none}
  36. blockquote.smallquotation {font-size: smaller}
  37. div.display {margin-left: 3.2em}
  38. div.example {margin-left: 3.2em}
  39. div.indentedblock {margin-left: 3.2em}
  40. div.lisp {margin-left: 3.2em}
  41. div.smalldisplay {margin-left: 3.2em}
  42. div.smallexample {margin-left: 3.2em}
  43. div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
  44. div.smalllisp {margin-left: 3.2em}
  45. kbd {font-style:oblique}
  46. pre.display {font-family: inherit}
  47. pre.format {font-family: inherit}
  48. pre.menu-comment {font-family: serif}
  49. pre.menu-preformatted {font-family: serif}
  50. pre.smalldisplay {font-family: inherit; font-size: smaller}
  51. pre.smallexample {font-size: smaller}
  52. pre.smallformat {font-family: inherit; font-size: smaller}
  53. pre.smalllisp {font-size: smaller}
  54. span.nocodebreak {white-space:nowrap}
  55. span.nolinebreak {white-space:nowrap}
  56. span.roman {font-family:serif; font-weight:normal}
  57. span.sansserif {font-family:sans-serif; font-weight:normal}
  58. ul.no-bullet {list-style: none}
  59. -->
  60. </style>
  61. </head>
  62. <body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
  63. <a name="Information-provided-by-the-linker"></a>
  64. <div class="header">
  65. <p>
  66. Next: <a href="Relocating-the-section-contents.html#Relocating-the-section-contents" accesskey="n" rel="next">Relocating the section contents</a>, Previous: <a href="Performing-the-Final-Link.html#Performing-the-Final-Link" accesskey="p" rel="prev">Performing the Final Link</a>, Up: <a href="Performing-the-Final-Link.html#Performing-the-Final-Link" accesskey="u" rel="up">Performing the Final Link</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="BFD-Index.html#BFD-Index" title="Index" rel="index">Index</a>]</p>
  67. </div>
  68. <hr>
  69. <a name="Information-provided-by-the-linker-1"></a>
  70. <h4 class="subsubsection">2.17.3.1 Information provided by the linker</h4>
  71. <p>Before the linker calls the <code>_bfd_final_link</code> entry point,
  72. it sets up some data structures for the function to use.
  73. </p>
  74. <p>The <code>input_bfds</code> field of the <code>bfd_link_info</code> structure
  75. will point to a list of all the input files included in the
  76. link. These files are linked through the <code>link.next</code> field
  77. of the <code>bfd</code> structure.
  78. </p>
  79. <p>Each section in the output file will have a list of
  80. <code>link_order</code> structures attached to the <code>map_head.link_order</code>
  81. field (the <code>link_order</code> structure is defined in
  82. <code>bfdlink.h</code>). These structures describe how to create the
  83. contents of the output section in terms of the contents of
  84. various input sections, fill constants, and, eventually, other
  85. types of information. They also describe relocs that must be
  86. created by the BFD backend, but do not correspond to any input
  87. file; this is used to support -Ur, which builds constructors
  88. while generating a relocatable object file.
  89. </p>
  90. </body>
  91. </html>