2022-12-07 17:18:37 +08:00
|
|
|
# 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"
|
2024-03-21 01:29:51 +08:00
|
|
|
default y if SIZE_OPTIMIZATIONS || SIZE_OPTIMIZATIONS_AGGRESSIVE
|
2022-12-07 17:18:37 +08:00
|
|
|
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"
|
2024-05-21 00:23:58 +08:00
|
|
|
select COMMON_LIBC_TIME if POSIX_TIMERS
|
2024-02-01 20:36:17 +08:00
|
|
|
select COMMON_LIBC_GMTIME_R
|
2024-08-15 14:49:32 +08:00
|
|
|
select COMMON_LIBC_ASCTIME
|
|
|
|
select COMMON_LIBC_LOCALTIME_R_UTC
|
|
|
|
select COMMON_LIBC_CTIME
|
2022-12-07 17:18:37 +08:00
|
|
|
default y
|
|
|
|
help
|
|
|
|
Enable time() and gmtime_r() for the minimal libc.
|
|
|
|
|
2024-05-21 00:23:58 +08:00
|
|
|
time() requires CONFIG_POSIX_TIMERS=y because it relies on the POSIX
|
2022-12-07 17:18:37 +08:00
|
|
|
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
|