Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

500 lines
21KB

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <!-- Copyright (C) 1988-2020 Free Software Foundation, Inc.
  4. Permission is granted to copy, distribute and/or modify this document
  5. under the terms of the GNU Free Documentation License, Version 1.3 or
  6. any later version published by the Free Software Foundation; with the
  7. Invariant Sections being "Funding Free Software", the Front-Cover
  8. Texts being (a) (see below), and with the Back-Cover Texts being (b)
  9. (see below). A copy of the license is included in the section entitled
  10. "GNU Free Documentation License".
  11. (a) The FSF's Front-Cover Text is:
  12. A GNU Manual
  13. (b) The FSF's Back-Cover Text is:
  14. You have freedom to copy and modify this GNU Manual, like GNU
  15. software. Copies published by the Free Software Foundation raise
  16. funds for GNU development. -->
  17. <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
  18. <head>
  19. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  20. <title>Nios II Options (Using the GNU Compiler Collection (GCC))</title>
  21. <meta name="description" content="Nios II Options (Using the GNU Compiler Collection (GCC))">
  22. <meta name="keywords" content="Nios II Options (Using the GNU Compiler Collection (GCC))">
  23. <meta name="resource-type" content="document">
  24. <meta name="distribution" content="global">
  25. <meta name="Generator" content="makeinfo">
  26. <link href="index.html#Top" rel="start" title="Top">
  27. <link href="Option-Index.html#Option-Index" rel="index" title="Option Index">
  28. <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
  29. <link href="Submodel-Options.html#Submodel-Options" rel="up" title="Submodel Options">
  30. <link href="Nvidia-PTX-Options.html#Nvidia-PTX-Options" rel="next" title="Nvidia PTX Options">
  31. <link href="NDS32-Options.html#NDS32-Options" rel="prev" title="NDS32 Options">
  32. <style type="text/css">
  33. <!--
  34. a.summary-letter {text-decoration: none}
  35. blockquote.indentedblock {margin-right: 0em}
  36. blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
  37. blockquote.smallquotation {font-size: smaller}
  38. div.display {margin-left: 3.2em}
  39. div.example {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.smalllisp {margin-left: 3.2em}
  44. kbd {font-style: oblique}
  45. pre.display {font-family: inherit}
  46. pre.format {font-family: inherit}
  47. pre.menu-comment {font-family: serif}
  48. pre.menu-preformatted {font-family: serif}
  49. pre.smalldisplay {font-family: inherit; font-size: smaller}
  50. pre.smallexample {font-size: smaller}
  51. pre.smallformat {font-family: inherit; font-size: smaller}
  52. pre.smalllisp {font-size: smaller}
  53. span.nolinebreak {white-space: nowrap}
  54. span.roman {font-family: initial; font-weight: normal}
  55. span.sansserif {font-family: sans-serif; font-weight: normal}
  56. ul.no-bullet {list-style: none}
  57. -->
  58. </style>
  59. </head>
  60. <body lang="en">
  61. <a name="Nios-II-Options"></a>
  62. <div class="header">
  63. <p>
  64. Next: <a href="Nvidia-PTX-Options.html#Nvidia-PTX-Options" accesskey="n" rel="next">Nvidia PTX Options</a>, Previous: <a href="NDS32-Options.html#NDS32-Options" accesskey="p" rel="prev">NDS32 Options</a>, Up: <a href="Submodel-Options.html#Submodel-Options" accesskey="u" rel="up">Submodel Options</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
  65. </div>
  66. <hr>
  67. <a name="Nios-II-Options-1"></a>
  68. <h4 class="subsection">3.19.35 Nios II Options</h4>
  69. <a name="index-Nios-II-options"></a>
  70. <a name="index-Altera-Nios-II-options"></a>
  71. <p>These are the options defined for the Altera Nios II processor.
  72. </p>
  73. <dl compact="compact">
  74. <dt><code>-G <var>num</var></code></dt>
  75. <dd><a name="index-G-3"></a>
  76. <a name="index-smaller-data-references-1"></a>
  77. <p>Put global and static objects less than or equal to <var>num</var> bytes
  78. into the small data or BSS sections instead of the normal data or BSS
  79. sections. The default value of <var>num</var> is 8.
  80. </p>
  81. </dd>
  82. <dt><code>-mgpopt=<var>option</var></code></dt>
  83. <dt><code>-mgpopt</code></dt>
  84. <dt><code>-mno-gpopt</code></dt>
  85. <dd><a name="index-mgpopt-1"></a>
  86. <a name="index-mno_002dgpopt-1"></a>
  87. <p>Generate (do not generate) GP-relative accesses. The following
  88. <var>option</var> names are recognized:
  89. </p>
  90. <dl compact="compact">
  91. <dt>&lsquo;<samp>none</samp>&rsquo;</dt>
  92. <dd><p>Do not generate GP-relative accesses.
  93. </p>
  94. </dd>
  95. <dt>&lsquo;<samp>local</samp>&rsquo;</dt>
  96. <dd><p>Generate GP-relative accesses for small data objects that are not
  97. external, weak, or uninitialized common symbols.
  98. Also use GP-relative addressing for objects that
  99. have been explicitly placed in a small data section via a <code>section</code>
  100. attribute.
  101. </p>
  102. </dd>
  103. <dt>&lsquo;<samp>global</samp>&rsquo;</dt>
  104. <dd><p>As for &lsquo;<samp>local</samp>&rsquo;, but also generate GP-relative accesses for
  105. small data objects that are external, weak, or common. If you use this option,
  106. you must ensure that all parts of your program (including libraries) are
  107. compiled with the same <samp>-G</samp> setting.
  108. </p>
  109. </dd>
  110. <dt>&lsquo;<samp>data</samp>&rsquo;</dt>
  111. <dd><p>Generate GP-relative accesses for all data objects in the program. If you
  112. use this option, the entire data and BSS segments
  113. of your program must fit in 64K of memory and you must use an appropriate
  114. linker script to allocate them within the addressable range of the
  115. global pointer.
  116. </p>
  117. </dd>
  118. <dt>&lsquo;<samp>all</samp>&rsquo;</dt>
  119. <dd><p>Generate GP-relative addresses for function pointers as well as data
  120. pointers. If you use this option, the entire text, data, and BSS segments
  121. of your program must fit in 64K of memory and you must use an appropriate
  122. linker script to allocate them within the addressable range of the
  123. global pointer.
  124. </p>
  125. </dd>
  126. </dl>
  127. <p><samp>-mgpopt</samp> is equivalent to <samp>-mgpopt=local</samp>, and
  128. <samp>-mno-gpopt</samp> is equivalent to <samp>-mgpopt=none</samp>.
  129. </p>
  130. <p>The default is <samp>-mgpopt</samp> except when <samp>-fpic</samp> or
  131. <samp>-fPIC</samp> is specified to generate position-independent code.
  132. Note that the Nios II ABI does not permit GP-relative accesses from
  133. shared libraries.
  134. </p>
  135. <p>You may need to specify <samp>-mno-gpopt</samp> explicitly when building
  136. programs that include large amounts of small data, including large
  137. GOT data sections. In this case, the 16-bit offset for GP-relative
  138. addressing may not be large enough to allow access to the entire
  139. small data section.
  140. </p>
  141. </dd>
  142. <dt><code>-mgprel-sec=<var>regexp</var></code></dt>
  143. <dd><a name="index-mgprel_002dsec"></a>
  144. <p>This option specifies additional section names that can be accessed via
  145. GP-relative addressing. It is most useful in conjunction with
  146. <code>section</code> attributes on variable declarations
  147. (see <a href="Common-Variable-Attributes.html#Common-Variable-Attributes">Common Variable Attributes</a>) and a custom linker script.
  148. The <var>regexp</var> is a POSIX Extended Regular Expression.
  149. </p>
  150. <p>This option does not affect the behavior of the <samp>-G</samp> option, and
  151. the specified sections are in addition to the standard <code>.sdata</code>
  152. and <code>.sbss</code> small-data sections that are recognized by <samp>-mgpopt</samp>.
  153. </p>
  154. </dd>
  155. <dt><code>-mr0rel-sec=<var>regexp</var></code></dt>
  156. <dd><a name="index-mr0rel_002dsec"></a>
  157. <p>This option specifies names of sections that can be accessed via a
  158. 16-bit offset from <code>r0</code>; that is, in the low 32K or high 32K
  159. of the 32-bit address space. It is most useful in conjunction with
  160. <code>section</code> attributes on variable declarations
  161. (see <a href="Common-Variable-Attributes.html#Common-Variable-Attributes">Common Variable Attributes</a>) and a custom linker script.
  162. The <var>regexp</var> is a POSIX Extended Regular Expression.
  163. </p>
  164. <p>In contrast to the use of GP-relative addressing for small data,
  165. zero-based addressing is never generated by default and there are no
  166. conventional section names used in standard linker scripts for sections
  167. in the low or high areas of memory.
  168. </p>
  169. </dd>
  170. <dt><code>-mel</code></dt>
  171. <dt><code>-meb</code></dt>
  172. <dd><a name="index-mel-2"></a>
  173. <a name="index-meb-2"></a>
  174. <p>Generate little-endian (default) or big-endian (experimental) code,
  175. respectively.
  176. </p>
  177. </dd>
  178. <dt><code>-march=<var>arch</var></code></dt>
  179. <dd><a name="index-march-10"></a>
  180. <p>This specifies the name of the target Nios II architecture. GCC uses this
  181. name to determine what kind of instructions it can emit when generating
  182. assembly code. Permissible names are: &lsquo;<samp>r1</samp>&rsquo;, &lsquo;<samp>r2</samp>&rsquo;.
  183. </p>
  184. <p>The preprocessor macro <code>__nios2_arch__</code> is available to programs,
  185. with value 1 or 2, indicating the targeted ISA level.
  186. </p>
  187. </dd>
  188. <dt><code>-mbypass-cache</code></dt>
  189. <dt><code>-mno-bypass-cache</code></dt>
  190. <dd><a name="index-mno_002dbypass_002dcache"></a>
  191. <a name="index-mbypass_002dcache"></a>
  192. <p>Force all load and store instructions to always bypass cache by
  193. using I/O variants of the instructions. The default is not to
  194. bypass the cache.
  195. </p>
  196. </dd>
  197. <dt><code>-mno-cache-volatile</code></dt>
  198. <dt><code>-mcache-volatile</code></dt>
  199. <dd><a name="index-mcache_002dvolatile"></a>
  200. <a name="index-mno_002dcache_002dvolatile"></a>
  201. <p>Volatile memory access bypass the cache using the I/O variants of
  202. the load and store instructions. The default is not to bypass the cache.
  203. </p>
  204. </dd>
  205. <dt><code>-mno-fast-sw-div</code></dt>
  206. <dt><code>-mfast-sw-div</code></dt>
  207. <dd><a name="index-mno_002dfast_002dsw_002ddiv"></a>
  208. <a name="index-mfast_002dsw_002ddiv"></a>
  209. <p>Do not use table-based fast divide for small numbers. The default
  210. is to use the fast divide at <samp>-O3</samp> and above.
  211. </p>
  212. </dd>
  213. <dt><code>-mno-hw-mul</code></dt>
  214. <dt><code>-mhw-mul</code></dt>
  215. <dt><code>-mno-hw-mulx</code></dt>
  216. <dt><code>-mhw-mulx</code></dt>
  217. <dt><code>-mno-hw-div</code></dt>
  218. <dt><code>-mhw-div</code></dt>
  219. <dd><a name="index-mno_002dhw_002dmul"></a>
  220. <a name="index-mhw_002dmul"></a>
  221. <a name="index-mno_002dhw_002dmulx"></a>
  222. <a name="index-mhw_002dmulx"></a>
  223. <a name="index-mno_002dhw_002ddiv"></a>
  224. <a name="index-mhw_002ddiv"></a>
  225. <p>Enable or disable emitting <code>mul</code>, <code>mulx</code> and <code>div</code> family of
  226. instructions by the compiler. The default is to emit <code>mul</code>
  227. and not emit <code>div</code> and <code>mulx</code>.
  228. </p>
  229. </dd>
  230. <dt><code>-mbmx</code></dt>
  231. <dt><code>-mno-bmx</code></dt>
  232. <dt><code>-mcdx</code></dt>
  233. <dt><code>-mno-cdx</code></dt>
  234. <dd><p>Enable or disable generation of Nios II R2 BMX (bit manipulation) and
  235. CDX (code density) instructions. Enabling these instructions also
  236. requires <samp>-march=r2</samp>. Since these instructions are optional
  237. extensions to the R2 architecture, the default is not to emit them.
  238. </p>
  239. </dd>
  240. <dt><code>-mcustom-<var>insn</var>=<var>N</var></code></dt>
  241. <dt><code>-mno-custom-<var>insn</var></code></dt>
  242. <dd><a name="index-mcustom_002dinsn"></a>
  243. <a name="index-mno_002dcustom_002dinsn"></a>
  244. <p>Each <samp>-mcustom-<var>insn</var>=<var>N</var></samp> option enables use of a
  245. custom instruction with encoding <var>N</var> when generating code that uses
  246. <var>insn</var>. For example, <samp>-mcustom-fadds=253</samp> generates custom
  247. instruction 253 for single-precision floating-point add operations instead
  248. of the default behavior of using a library call.
  249. </p>
  250. <p>The following values of <var>insn</var> are supported. Except as otherwise
  251. noted, floating-point operations are expected to be implemented with
  252. normal IEEE 754 semantics and correspond directly to the C operators or the
  253. equivalent GCC built-in functions (see <a href="Other-Builtins.html#Other-Builtins">Other Builtins</a>).
  254. </p>
  255. <p>Single-precision floating point:
  256. </p><dl compact="compact">
  257. <dt>&lsquo;<samp>fadds</samp>&rsquo;, &lsquo;<samp>fsubs</samp>&rsquo;, &lsquo;<samp>fdivs</samp>&rsquo;, &lsquo;<samp>fmuls</samp>&rsquo;</dt>
  258. <dd><p>Binary arithmetic operations.
  259. </p>
  260. </dd>
  261. <dt>&lsquo;<samp>fnegs</samp>&rsquo;</dt>
  262. <dd><p>Unary negation.
  263. </p>
  264. </dd>
  265. <dt>&lsquo;<samp>fabss</samp>&rsquo;</dt>
  266. <dd><p>Unary absolute value.
  267. </p>
  268. </dd>
  269. <dt>&lsquo;<samp>fcmpeqs</samp>&rsquo;, &lsquo;<samp>fcmpges</samp>&rsquo;, &lsquo;<samp>fcmpgts</samp>&rsquo;, &lsquo;<samp>fcmples</samp>&rsquo;, &lsquo;<samp>fcmplts</samp>&rsquo;, &lsquo;<samp>fcmpnes</samp>&rsquo;</dt>
  270. <dd><p>Comparison operations.
  271. </p>
  272. </dd>
  273. <dt>&lsquo;<samp>fmins</samp>&rsquo;, &lsquo;<samp>fmaxs</samp>&rsquo;</dt>
  274. <dd><p>Floating-point minimum and maximum. These instructions are only
  275. generated if <samp>-ffinite-math-only</samp> is specified.
  276. </p>
  277. </dd>
  278. <dt>&lsquo;<samp>fsqrts</samp>&rsquo;</dt>
  279. <dd><p>Unary square root operation.
  280. </p>
  281. </dd>
  282. <dt>&lsquo;<samp>fcoss</samp>&rsquo;, &lsquo;<samp>fsins</samp>&rsquo;, &lsquo;<samp>ftans</samp>&rsquo;, &lsquo;<samp>fatans</samp>&rsquo;, &lsquo;<samp>fexps</samp>&rsquo;, &lsquo;<samp>flogs</samp>&rsquo;</dt>
  283. <dd><p>Floating-point trigonometric and exponential functions. These instructions
  284. are only generated if <samp>-funsafe-math-optimizations</samp> is also specified.
  285. </p>
  286. </dd>
  287. </dl>
  288. <p>Double-precision floating point:
  289. </p><dl compact="compact">
  290. <dt>&lsquo;<samp>faddd</samp>&rsquo;, &lsquo;<samp>fsubd</samp>&rsquo;, &lsquo;<samp>fdivd</samp>&rsquo;, &lsquo;<samp>fmuld</samp>&rsquo;</dt>
  291. <dd><p>Binary arithmetic operations.
  292. </p>
  293. </dd>
  294. <dt>&lsquo;<samp>fnegd</samp>&rsquo;</dt>
  295. <dd><p>Unary negation.
  296. </p>
  297. </dd>
  298. <dt>&lsquo;<samp>fabsd</samp>&rsquo;</dt>
  299. <dd><p>Unary absolute value.
  300. </p>
  301. </dd>
  302. <dt>&lsquo;<samp>fcmpeqd</samp>&rsquo;, &lsquo;<samp>fcmpged</samp>&rsquo;, &lsquo;<samp>fcmpgtd</samp>&rsquo;, &lsquo;<samp>fcmpled</samp>&rsquo;, &lsquo;<samp>fcmpltd</samp>&rsquo;, &lsquo;<samp>fcmpned</samp>&rsquo;</dt>
  303. <dd><p>Comparison operations.
  304. </p>
  305. </dd>
  306. <dt>&lsquo;<samp>fmind</samp>&rsquo;, &lsquo;<samp>fmaxd</samp>&rsquo;</dt>
  307. <dd><p>Double-precision minimum and maximum. These instructions are only
  308. generated if <samp>-ffinite-math-only</samp> is specified.
  309. </p>
  310. </dd>
  311. <dt>&lsquo;<samp>fsqrtd</samp>&rsquo;</dt>
  312. <dd><p>Unary square root operation.
  313. </p>
  314. </dd>
  315. <dt>&lsquo;<samp>fcosd</samp>&rsquo;, &lsquo;<samp>fsind</samp>&rsquo;, &lsquo;<samp>ftand</samp>&rsquo;, &lsquo;<samp>fatand</samp>&rsquo;, &lsquo;<samp>fexpd</samp>&rsquo;, &lsquo;<samp>flogd</samp>&rsquo;</dt>
  316. <dd><p>Double-precision trigonometric and exponential functions. These instructions
  317. are only generated if <samp>-funsafe-math-optimizations</samp> is also specified.
  318. </p>
  319. </dd>
  320. </dl>
  321. <p>Conversions:
  322. </p><dl compact="compact">
  323. <dt>&lsquo;<samp>fextsd</samp>&rsquo;</dt>
  324. <dd><p>Conversion from single precision to double precision.
  325. </p>
  326. </dd>
  327. <dt>&lsquo;<samp>ftruncds</samp>&rsquo;</dt>
  328. <dd><p>Conversion from double precision to single precision.
  329. </p>
  330. </dd>
  331. <dt>&lsquo;<samp>fixsi</samp>&rsquo;, &lsquo;<samp>fixsu</samp>&rsquo;, &lsquo;<samp>fixdi</samp>&rsquo;, &lsquo;<samp>fixdu</samp>&rsquo;</dt>
  332. <dd><p>Conversion from floating point to signed or unsigned integer types, with
  333. truncation towards zero.
  334. </p>
  335. </dd>
  336. <dt>&lsquo;<samp>round</samp>&rsquo;</dt>
  337. <dd><p>Conversion from single-precision floating point to signed integer,
  338. rounding to the nearest integer and ties away from zero.
  339. This corresponds to the <code>__builtin_lroundf</code> function when
  340. <samp>-fno-math-errno</samp> is used.
  341. </p>
  342. </dd>
  343. <dt>&lsquo;<samp>floatis</samp>&rsquo;, &lsquo;<samp>floatus</samp>&rsquo;, &lsquo;<samp>floatid</samp>&rsquo;, &lsquo;<samp>floatud</samp>&rsquo;</dt>
  344. <dd><p>Conversion from signed or unsigned integer types to floating-point types.
  345. </p>
  346. </dd>
  347. </dl>
  348. <p>In addition, all of the following transfer instructions for internal
  349. registers X and Y must be provided to use any of the double-precision
  350. floating-point instructions. Custom instructions taking two
  351. double-precision source operands expect the first operand in the
  352. 64-bit register X. The other operand (or only operand of a unary
  353. operation) is given to the custom arithmetic instruction with the
  354. least significant half in source register <var>src1</var> and the most
  355. significant half in <var>src2</var>. A custom instruction that returns a
  356. double-precision result returns the most significant 32 bits in the
  357. destination register and the other half in 32-bit register Y.
  358. GCC automatically generates the necessary code sequences to write
  359. register X and/or read register Y when double-precision floating-point
  360. instructions are used.
  361. </p>
  362. <dl compact="compact">
  363. <dt>&lsquo;<samp>fwrx</samp>&rsquo;</dt>
  364. <dd><p>Write <var>src1</var> into the least significant half of X and <var>src2</var> into
  365. the most significant half of X.
  366. </p>
  367. </dd>
  368. <dt>&lsquo;<samp>fwry</samp>&rsquo;</dt>
  369. <dd><p>Write <var>src1</var> into Y.
  370. </p>
  371. </dd>
  372. <dt>&lsquo;<samp>frdxhi</samp>&rsquo;, &lsquo;<samp>frdxlo</samp>&rsquo;</dt>
  373. <dd><p>Read the most or least (respectively) significant half of X and store it in
  374. <var>dest</var>.
  375. </p>
  376. </dd>
  377. <dt>&lsquo;<samp>frdy</samp>&rsquo;</dt>
  378. <dd><p>Read the value of Y and store it into <var>dest</var>.
  379. </p></dd>
  380. </dl>
  381. <p>Note that you can gain more local control over generation of Nios II custom
  382. instructions by using the <code>target(&quot;custom-<var>insn</var>=<var>N</var>&quot;)</code>
  383. and <code>target(&quot;no-custom-<var>insn</var>&quot;)</code> function attributes
  384. (see <a href="Function-Attributes.html#Function-Attributes">Function Attributes</a>)
  385. or pragmas (see <a href="Function-Specific-Option-Pragmas.html#Function-Specific-Option-Pragmas">Function Specific Option Pragmas</a>).
  386. </p>
  387. </dd>
  388. <dt><code>-mcustom-fpu-cfg=<var>name</var></code></dt>
  389. <dd><a name="index-mcustom_002dfpu_002dcfg"></a>
  390. <p>This option enables a predefined, named set of custom instruction encodings
  391. (see <samp>-mcustom-<var>insn</var></samp> above).
  392. Currently, the following sets are defined:
  393. </p>
  394. <p><samp>-mcustom-fpu-cfg=60-1</samp> is equivalent to:
  395. </p><div class="smallexample">
  396. <pre class="smallexample">-mcustom-fmuls=252
  397. -mcustom-fadds=253
  398. -mcustom-fsubs=254
  399. -fsingle-precision-constant
  400. </pre></div>
  401. <p><samp>-mcustom-fpu-cfg=60-2</samp> is equivalent to:
  402. </p><div class="smallexample">
  403. <pre class="smallexample">-mcustom-fmuls=252
  404. -mcustom-fadds=253
  405. -mcustom-fsubs=254
  406. -mcustom-fdivs=255
  407. -fsingle-precision-constant
  408. </pre></div>
  409. <p><samp>-mcustom-fpu-cfg=72-3</samp> is equivalent to:
  410. </p><div class="smallexample">
  411. <pre class="smallexample">-mcustom-floatus=243
  412. -mcustom-fixsi=244
  413. -mcustom-floatis=245
  414. -mcustom-fcmpgts=246
  415. -mcustom-fcmples=249
  416. -mcustom-fcmpeqs=250
  417. -mcustom-fcmpnes=251
  418. -mcustom-fmuls=252
  419. -mcustom-fadds=253
  420. -mcustom-fsubs=254
  421. -mcustom-fdivs=255
  422. -fsingle-precision-constant
  423. </pre></div>
  424. <p>Custom instruction assignments given by individual
  425. <samp>-mcustom-<var>insn</var>=</samp> options override those given by
  426. <samp>-mcustom-fpu-cfg=</samp>, regardless of the
  427. order of the options on the command line.
  428. </p>
  429. <p>Note that you can gain more local control over selection of a FPU
  430. configuration by using the <code>target(&quot;custom-fpu-cfg=<var>name</var>&quot;)</code>
  431. function attribute (see <a href="Function-Attributes.html#Function-Attributes">Function Attributes</a>)
  432. or pragma (see <a href="Function-Specific-Option-Pragmas.html#Function-Specific-Option-Pragmas">Function Specific Option Pragmas</a>).
  433. </p>
  434. </dd>
  435. </dl>
  436. <p>These additional &lsquo;<samp>-m</samp>&rsquo; options are available for the Altera Nios II
  437. ELF (bare-metal) target:
  438. </p>
  439. <dl compact="compact">
  440. <dt><code>-mhal</code></dt>
  441. <dd><a name="index-mhal"></a>
  442. <p>Link with HAL BSP. This suppresses linking with the GCC-provided C runtime
  443. startup and termination code, and is typically used in conjunction with
  444. <samp>-msys-crt0=</samp> to specify the location of the alternate startup code
  445. provided by the HAL BSP.
  446. </p>
  447. </dd>
  448. <dt><code>-msmallc</code></dt>
  449. <dd><a name="index-msmallc"></a>
  450. <p>Link with a limited version of the C library, <samp>-lsmallc</samp>, rather than
  451. Newlib.
  452. </p>
  453. </dd>
  454. <dt><code>-msys-crt0=<var>startfile</var></code></dt>
  455. <dd><a name="index-msys_002dcrt0"></a>
  456. <p><var>startfile</var> is the file name of the startfile (crt0) to use
  457. when linking. This option is only useful in conjunction with <samp>-mhal</samp>.
  458. </p>
  459. </dd>
  460. <dt><code>-msys-lib=<var>systemlib</var></code></dt>
  461. <dd><a name="index-msys_002dlib"></a>
  462. <p><var>systemlib</var> is the library name of the library that provides
  463. low-level system calls required by the C library,
  464. e.g. <code>read</code> and <code>write</code>.
  465. This option is typically used to link with a library provided by a HAL BSP.
  466. </p>
  467. </dd>
  468. </dl>
  469. <hr>
  470. <div class="header">
  471. <p>
  472. Next: <a href="Nvidia-PTX-Options.html#Nvidia-PTX-Options" accesskey="n" rel="next">Nvidia PTX Options</a>, Previous: <a href="NDS32-Options.html#NDS32-Options" accesskey="p" rel="prev">NDS32 Options</a>, Up: <a href="Submodel-Options.html#Submodel-Options" accesskey="u" rel="up">Submodel Options</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
  473. </div>
  474. </body>
  475. </html>