| # Copyright (c) 2016 Intel Corporation |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| if MINIMAL_LIBC |
| |
| config MINIMAL_LIBC_NON_REENTRANT_FUNCTIONS |
| bool "Non-reentrant functions" |
| default y if !USERSPACE |
| select NEED_LIBC_MEM_PARTITION |
| help |
| Enable non-reentrant functions that make use of the globals; e.g. |
| rand() and gmtime(). The globals must be put into a dedicated C |
| library memory partition when CONFIG_USERSPACE=y, and enabling this |
| option may require an additional memory protection region. |
| |
| config MINIMAL_LIBC_LL_PRINTF |
| bool "Build with minimal libc long long printf" if !64BIT |
| default y if 64BIT |
| help |
| Build with long long printf enabled. This will increase the size of |
| the image. |
| |
| config MINIMAL_LIBC_OPTIMIZE_STRING_FOR_SIZE |
| bool "Use size optimized string functions" |
| default y if SIZE_OPTIMIZATIONS || SIZE_OPTIMIZATIONS_AGGRESSIVE |
| help |
| Enable smaller but potentially slower implementations of memcpy and |
| memset. On the Cortex-M0+ this reduces the total code size by 120 bytes. |
| |
| config MINIMAL_LIBC_RAND |
| bool "Rand and srand functions" |
| help |
| Enable rand_r() for the minimal libc. |
| |
| In order to make use of the non-reentrant rand() and srand(), it is |
| necessary to set CONFIG_MINIMAL_LIBC_NON_REENTRANT_FUNCTIONS=y. |
| |
| config MINIMAL_LIBC_TIME |
| bool "Time functions" |
| select COMMON_LIBC_TIME if POSIX_TIMERS |
| select COMMON_LIBC_GMTIME_R |
| select COMMON_LIBC_ASCTIME |
| select COMMON_LIBC_LOCALTIME_R_UTC |
| select COMMON_LIBC_CTIME |
| default y |
| help |
| Enable time() and gmtime_r() for the minimal libc. |
| |
| time() requires CONFIG_POSIX_TIMERS=y because it relies on the POSIX |
| clock_gettime() function. |
| |
| In order to make use of the non-reentrant gmtime(), it is necessary |
| to set CONFIG_MINIMAL_LIBC_NON_REENTRANT_FUNCTIONS=y. |
| |
| config MINIMAL_LIBC_STRING_ERROR_TABLE |
| bool "String error table for strerror() and strerror_r()" |
| help |
| Select this option to ensure that streror(), strerror_r() |
| produce strings corresponding to the descriptions in errno.h. |
| |
| The string error table can add ~2kiB to ROM. As such, it is |
| disabled by default. In this case, strerror() and strerror_r() |
| symbols are still present, but the functions produce an empty |
| string. |
| |
| endif # MINIMAL_LIBC |