| # C library |
| |
| # Copyright (c) 2016 Intel Corporation |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| menu "C Library" |
| |
| config REQUIRES_FULL_LIBC |
| bool |
| help |
| Helper symbol to indicate some feature requires a C library implementation |
| with more functionality than what MINIMAL_LIBC provides |
| |
| config SUPPORT_MINIMAL_LIBC |
| bool |
| default y |
| |
| # Picolibc with C++ support in Zephyr SDK is handled by Zephyr SDK's own Kconfig. |
| config PICOLIBC_SUPPORTED |
| bool |
| depends on ARC || ARM || ARM64 || MIPS || RISCV |
| depends on "$(ZEPHYR_TOOLCHAIN_VARIANT)" != "arcmwdt" |
| depends on !(CPP && "$(ZEPHYR_TOOLCHAIN_VARIANT)" = "zephyr") |
| default y |
| help |
| Selected when the target has support for picolibc. |
| |
| choice LIBC_IMPLEMENTATION |
| prompt "C Library Implementation" |
| default EXTERNAL_LIBC if NATIVE_APPLICATION |
| default NEWLIB_LIBC if REQUIRES_FULL_LIBC |
| default MINIMAL_LIBC |
| |
| config MINIMAL_LIBC |
| bool "Minimal C library" |
| depends on !NATIVE_APPLICATION |
| depends on !REQUIRES_FULL_LIBC |
| depends on SUPPORT_MINIMAL_LIBC |
| help |
| Build with minimal C library. |
| |
| config PICOLIBC |
| bool "Picolibc library" |
| select THREAD_LOCAL_STORAGE if ARCH_HAS_THREAD_LOCAL_STORAGE && TOOLCHAIN_SUPPORTS_THREAD_LOCAL_STORAGE |
| select LIBC_ERRNO if THREAD_LOCAL_STORAGE |
| depends on !NATIVE_APPLICATION |
| depends on PICOLIBC_SUPPORTED |
| help |
| Build with picolibc library. The picolibc library is built as |
| a module if PICOLIBC_MODULE is set, otherwise picolibc is |
| expected to be provided by the toolchain. |
| |
| config NEWLIB_LIBC |
| bool "Newlib C library" |
| depends on !NATIVE_APPLICATION |
| help |
| Build with newlib library. The newlib library is expected to be |
| part of the SDK in this case. |
| |
| config ARCMWDT_LIBC |
| bool "ARC MWDT C library" |
| depends on !NATIVE_APPLICATION |
| depends on "$(ZEPHYR_TOOLCHAIN_VARIANT)" = "arcmwdt" |
| help |
| C library provided by ARC MWDT toolchain. |
| |
| config EXTERNAL_LIBC |
| bool "External C library" |
| help |
| Build with external/user provided C library. |
| |
| endchoice # LIBC_IMPLEMENTATION |
| |
| config HAS_NEWLIB_LIBC_NANO |
| bool |
| |
| rsource "minimal/Kconfig" |
| rsource "newlib/Kconfig" |
| rsource "picolibc/Kconfig" |
| |
| config STDOUT_CONSOLE |
| bool "Send stdout to console" |
| depends on CONSOLE_HAS_DRIVER |
| depends on !NATIVE_APPLICATION |
| default y |
| help |
| This option directs standard output (e.g. printf) to the console |
| device, rather than suppressing it entirely. See also EARLY_CONSOLE |
| option. |
| |
| config NEED_LIBC_MEM_PARTITION |
| bool |
| help |
| Hidden option to signal that a memory partition is needed for |
| the C library even though it would not have been enabled |
| otherwise. |
| |
| endmenu |