Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

103 lines
4.5KB

  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 Arm Embedded Toolchain 10-2020-q4-major)
  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 6.5, http://www.gnu.org/software/texinfo/ -->
  14. <head>
  15. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  16. <title>Nios II (LD)</title>
  17. <meta name="description" content="Nios II (LD)">
  18. <meta name="keywords" content="Nios II (LD)">
  19. <meta name="resource-type" content="document">
  20. <meta name="distribution" content="global">
  21. <meta name="Generator" content="makeinfo">
  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="Machine-Dependent.html#Machine-Dependent" rel="up" title="Machine Dependent">
  26. <link href="PowerPC-ELF32.html#PowerPC-ELF32" rel="next" title="PowerPC ELF32">
  27. <link href="NDS32.html#NDS32" rel="prev" title="NDS32">
  28. <style type="text/css">
  29. <!--
  30. a.summary-letter {text-decoration: none}
  31. blockquote.indentedblock {margin-right: 0em}
  32. blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
  33. blockquote.smallquotation {font-size: smaller}
  34. div.display {margin-left: 3.2em}
  35. div.example {margin-left: 3.2em}
  36. div.lisp {margin-left: 3.2em}
  37. div.smalldisplay {margin-left: 3.2em}
  38. div.smallexample {margin-left: 3.2em}
  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.nolinebreak {white-space: nowrap}
  50. span.roman {font-family: initial; font-weight: normal}
  51. span.sansserif {font-family: sans-serif; font-weight: normal}
  52. ul.no-bullet {list-style: none}
  53. -->
  54. </style>
  55. </head>
  56. <body lang="en">
  57. <a name="Nios-II"></a>
  58. <div class="header">
  59. <p>
  60. Next: <a href="PowerPC-ELF32.html#PowerPC-ELF32" accesskey="n" rel="next">PowerPC ELF32</a>, Previous: <a href="NDS32.html#NDS32" accesskey="p" rel="prev">NDS32</a>, Up: <a href="Machine-Dependent.html#Machine-Dependent" accesskey="u" rel="up">Machine Dependent</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>
  61. </div>
  62. <hr>
  63. <a name="ld-and-the-Altera-Nios-II"></a>
  64. <h3 class="section">4.10 <code>ld</code> and the Altera Nios II</h3>
  65. <a name="index-Nios-II-call-relaxation"></a>
  66. <a name="index-_002d_002drelax-on-Nios-II"></a>
  67. <p>Call and immediate jump instructions on Nios II processors are limited to
  68. transferring control to addresses in the same 256MB memory segment,
  69. which may result in <code>ld</code> giving
  70. &lsquo;<samp>relocation truncated to fit</samp>&rsquo; errors with very large programs.
  71. The command-line option <samp>--relax</samp> enables the generation of
  72. trampolines that can access the entire 32-bit address space for calls
  73. outside the normal <code>call</code> and <code>jmpi</code> address range. These
  74. trampolines are inserted at section boundaries, so may not themselves
  75. be reachable if an input section and its associated call trampolines are
  76. larger than 256MB.
  77. </p>
  78. <p>The <samp>--relax</samp> option is enabled by default unless <samp>-r</samp>
  79. is also specified. You can disable trampoline generation by using the
  80. <samp>--no-relax</samp> linker option. You can also disable this optimization
  81. locally by using the &lsquo;<samp>set .noat</samp>&rsquo; directive in assembly-language
  82. source files, as the linker-inserted trampolines use the <code>at</code>
  83. register as a temporary.
  84. </p>
  85. <p>Note that the linker <samp>--relax</samp> option is independent of assembler
  86. relaxation options, and that using the GNU assembler&rsquo;s <samp>-relax-all</samp>
  87. option interferes with the linker&rsquo;s more selective call instruction relaxation.
  88. </p>
  89. </body>
  90. </html>