Introduce a place to share implementations of libc functions that are needed by different libc versions. Place time() in this common location so it can be shared when building for either minimal libc or armclang libc. Signed-off-by: Kumar Gala <kumar.gala@intel.com>
101 lines
2.6 KiB
Plaintext
101 lines
2.6 KiB
Plaintext
# 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 !NATIVE_APPLICATION
|
|
depends on "$(ZEPHYR_TOOLCHAIN_VARIANT)" = "zephyr"
|
|
depends on !(CPP && "$(ZEPHYR_TOOLCHAIN_VARIANT)" = "zephyr")
|
|
# picolibc text is outside .pinned.text on this board. #54148
|
|
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 "common/Kconfig"
|
|
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
|