You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

131 line
5.1KB

  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-2020 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 6.5, http://www.gnu.org/software/texinfo/ -->
  19. <head>
  20. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  21. <title>Writing Symbols (Untitled Document)</title>
  22. <meta name="description" content="Writing Symbols (Untitled Document)">
  23. <meta name="keywords" content="Writing Symbols (Untitled Document)">
  24. <meta name="resource-type" content="document">
  25. <meta name="distribution" content="global">
  26. <meta name="Generator" content="makeinfo">
  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="Symbols.html#Symbols" rel="up" title="Symbols">
  31. <link href="Mini-Symbols.html#Mini-Symbols" rel="next" title="Mini Symbols">
  32. <link href="Reading-Symbols.html#Reading-Symbols" rel="prev" title="Reading Symbols">
  33. <style type="text/css">
  34. <!--
  35. a.summary-letter {text-decoration: none}
  36. blockquote.indentedblock {margin-right: 0em}
  37. blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
  38. blockquote.smallquotation {font-size: smaller}
  39. div.display {margin-left: 3.2em}
  40. div.example {margin-left: 3.2em}
  41. div.lisp {margin-left: 3.2em}
  42. div.smalldisplay {margin-left: 3.2em}
  43. div.smallexample {margin-left: 3.2em}
  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.nolinebreak {white-space: nowrap}
  55. span.roman {font-family: initial; font-weight: normal}
  56. span.sansserif {font-family: sans-serif; font-weight: normal}
  57. ul.no-bullet {list-style: none}
  58. -->
  59. </style>
  60. </head>
  61. <body lang="en">
  62. <a name="Writing-Symbols"></a>
  63. <div class="header">
  64. <p>
  65. Next: <a href="Mini-Symbols.html#Mini-Symbols" accesskey="n" rel="next">Mini Symbols</a>, Previous: <a href="Reading-Symbols.html#Reading-Symbols" accesskey="p" rel="prev">Reading Symbols</a>, Up: <a href="Symbols.html#Symbols" accesskey="u" rel="up">Symbols</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>
  66. </div>
  67. <hr>
  68. <a name="Writing-symbols"></a>
  69. <h4 class="subsection">2.7.2 Writing symbols</h4>
  70. <p>Writing of a symbol table is automatic when a BFD open for
  71. writing is closed. The application attaches a vector of
  72. pointers to pointers to symbols to the BFD being written, and
  73. fills in the symbol count. The close and cleanup code reads
  74. through the table provided and performs all the necessary
  75. operations. The BFD output code must always be provided with an
  76. &ldquo;owned&rdquo; symbol: one which has come from another BFD, or one
  77. which has been created using <code>bfd_make_empty_symbol</code>. Here is an
  78. example showing the creation of a symbol table with only one element:
  79. </p>
  80. <div class="example">
  81. <pre class="example"> #include &quot;sysdep.h&quot;
  82. #include &quot;bfd.h&quot;
  83. int main (void)
  84. {
  85. bfd *abfd;
  86. asymbol *ptrs[2];
  87. asymbol *new;
  88. abfd = bfd_openw (&quot;foo&quot;,&quot;a.out-sunos-big&quot;);
  89. bfd_set_format (abfd, bfd_object);
  90. new = bfd_make_empty_symbol (abfd);
  91. new-&gt;name = &quot;dummy_symbol&quot;;
  92. new-&gt;section = bfd_make_section_old_way (abfd, &quot;.text&quot;);
  93. new-&gt;flags = BSF_GLOBAL;
  94. new-&gt;value = 0x12345;
  95. ptrs[0] = new;
  96. ptrs[1] = 0;
  97. bfd_set_symtab (abfd, ptrs, 1);
  98. bfd_close (abfd);
  99. return 0;
  100. }
  101. ./makesym
  102. nm foo
  103. 00012345 A dummy_symbol
  104. </pre></div>
  105. <p>Many formats cannot represent arbitrary symbol information; for
  106. instance, the <code>a.out</code> object format does not allow an
  107. arbitrary number of sections. A symbol pointing to a section
  108. which is not one of <code>.text</code>, <code>.data</code> or <code>.bss</code> cannot
  109. be described.
  110. </p>
  111. </body>
  112. </html>