CYGPKG_LIBC_STDLIB
Dummy
Options associated with the standard utility functions in <stdlib.h>
CYGIMP_LIBC_STDLIB_INLINES
Boolean
This option chooses whether some of the particularly simple standard utility functions from <stdlib.h> are available as inline functions. This may improve performance, and as the functions are small, may even improve code size.
CYGPKG_LIBC_RAND
Dummy
These options control the behavior of the functions rand(), srand() and rand_r()
CYGSEM_LIBC_PER_THREAD_RAND
Boolean
This option controls whether the pseudo-random number generation functions rand() and srand() have their state recorded on a per-thread basis rather than global. If this option is disabled, some per-thread space can be saved. Note there is also a POSIX-standard rand_r() function to achieve a similar effect with user support. Enabling this option will use one slot of kernel per-thread data. You should ensure you have enough slots configured for all your per-thread data.
CYGNUM_LIBC_RAND_SEED
Count
This selects the initial random number seed for rand()"s pseudo-random number generator. For strict ISO standard compliance, this should be 1, as per section 7.10.2.2 of the standard.
CYGNUM_LIBC_RAND_TRACE_LEVEL
Count
Trace verbosity level for debugging the rand(), srand() and rand_r() functions. Increase this value to get additional trace output.
CYGIMP_LIBC_RAND_SIMPLEST
Radio
This provides a very simple implementation of rand() that does not perform well with randomness in the lower significant bits. However it is exceptionally fast. It uses the sample algorithm from the ISO C standard itself.
CYGIMP_LIBC_RAND_SIMPLE1
Radio
This provides a very simple implementation of rand() based on the simplest implementation above. However it does try to work around the lack of randomness in the lower significant bits, at the expense of a little speed.
CYGIMP_LIBC_RAND_KNUTH1
Radio
This implements a slightly more complex algorithm published in Donald E. Knuth"s Art of Computer Programming Vol.2 section 3.6 (p.185 in the 3rd ed.). This produces better random numbers than the simplest approach but is slower.
CYGPKG_LIBC_MALLOC
Boolean
This enables support for dynamic memory allocation as supplied by the functions malloc(), free(), calloc() and realloc(). As these functions are often used, but can have quite an overhead, disabling them here can ensure they cannot even be used accidentally when static allocation is preferred.
CYGNUM_LIBC_MALLOC_MEMPOOL_SIZE
Count
At this stage, dynamic memory allocation by malloc() and calloc() must be from a fixed-size, contiguous memory pool. This option is the size of that pool, in bytes. Note that not all of this is available for programs to use - some is needed for internal information about memory regions, and some may be lost to ensure that memory allocation only returns memory aligned on word (or double word) boundaries - a very common architecture constraint.
CYGIMP_LIBC_MALLOC_CXX_DELETE_CALLS_FREE
Boolean
C++ new and delete operators can call the C library"s malloc() and free() implicitly. If this is what is required, enable this option. However, if enabled, the dynamic memory allocation code is always linked in to the application, even if it is not explicitly called and new/delete are not used. This increases code and data size needlessly.
CYGFUN_LIBC_strtod
Boolean
This option allows use of the utility function strtod() (and consequently atof()) to convert from string to double precision floating point numbers. Disabling this option removes the dependency on the math library package.
CYGNUM_LIBC_BSEARCH_TRACE_LEVEL
Count
Trace verbosity level for debugging the <stdlib.h> binary search function bsearch(). Increase this value to get additional trace output.
CYGNUM_LIBC_QSORT_TRACE_LEVEL
Count
Trace verbosity level for debugging the <stdlib.h> quicksort function qsort(). Increase this value to get additional trace output.