Cadence offers the choice of three C and math libraries:
newlib from Red Hat, Inc., the Xtensa C library and
uClibc
- C Libraries Selection
- Newlib C Library
You choose between the libraries when building your software configuration through the
Xtensa Processor Generator. The libraries cannot be mixed.
- The newlib library is more complete, fully documented, higher
performance and supports reentrancy for multi-threaded environments.
- The Xtensa C library has similar performance to newlib and is smaller. It strictly
implements the C library as defined by the C standard and hence may not implement
all the extensions supported by newlib. The philosophy of the
library is standards compliance and simplicity. So, for example, the malloc routine
is simple and hence fast but might cause more memory fragmentation on programs that
extensively malloc and free. The Xtensa C library places no open source restrictions
on the C user (there are minor restrictions for the C++ user).
- uClibc is significantly smaller. uClibc can be
configured with or without support for floating point. Without floating point
support, it is not possible, for example, to print floating point numbers and it is
not possible to use C++ I/O streams, but the resultant library is significantly
smaller still. Note that uClibc comes with more restrictive open
source licensing requirements than even newlib.
Review your contract or the files in the XtensaTools/misc directory for
details about the various licensing requirements.