Knowledge Base Article
Compiler Flags for Building Custom Newlib
Description
“Common BSP Tasks” in the Nios II Software Build Tools chapter of the Nios II Software Developer’s Handbook describes how to compile a custom version of the newlib library. However, it does not list the compiler flags that must be selected to generate the correct library.
Resolution
The missing information is as follows:
The Nios II EDS provides a number of precompiled newlib implementations. The provided libraries are precompiled with every viable combination of the GCC compiler flags shown in .
When you create a BSP with a precompiled newlib, the Nios II SBT selects the newlib matching your BSP’s compiler settings. When you create a custom newlib, you must ensure that the compiler flags listed in match your BSP’s settings.
| Option Name | Purpose |
-pg | Link for profiling with gprof |
-EB | Generate big-endian code |
-mstack-check | Enable stack checking |
-mno-hw-mul | Disable use of the mul family of instructions |
-mhw-mulx | Enable use of the mulx family of instructions |
-mcustom-fpu-cfg | Use a floating point custom instruction |
The Nios II-specific compiler flag -mcustom-fpu-cfg requires
the Nios II processor core to be implemented with the floating-point
custom instruction as specified in the flag argument. The compiler
flag can have one of the following two argument values:
-mcustom-fpu-cfg=60-1--Use the Nios II floating-point custom instruction without divider-mcustom-fpu-cfg=60-2--Use the Nios II floating-point custom instruction with divider
For details about the Nios II-specific compiler flags -mstack-check, -mno-hw-mul, and -mhw-mulx,
refer to “Altera Nios II Options” in Using the GNU Compiler
Collection (GCC), installed with the Nios II EDS. For
details about the -pg compiler flag, refer to “Compiling
a Program for Profiling” in GNU Profiler, installed
with the Nios II EDS. To find the installed documentation, on the
Windows Start menu, click Programs > Altera > Nios
II EDS <version> > Nios II <version> Documentation,
and then click Literature.