# 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