libc: Added Kconfig choice to select C library
Added Kconfig choice to select C library implementation Signed-off-by: Jan Van Winkel <jan.van_winkel@dxplore.eu>
This commit is contained in:
parent
51d19cbbee
commit
c1f865b412
2 changed files with 45 additions and 19 deletions
|
@ -1,6 +1,6 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
if(NOT CONFIG_NATIVE_APPLICATION)
|
||||
if(NOT CONFIG_EXTERNAL_LIBC)
|
||||
add_subdirectory(libc)
|
||||
add_subdirectory(posix)
|
||||
endif()
|
||||
|
|
|
@ -7,18 +7,44 @@
|
|||
#
|
||||
|
||||
menu "C Library"
|
||||
depends on !NATIVE_APPLICATION
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
help
|
||||
Build with minimal C library.
|
||||
|
||||
config NEWLIB_LIBC
|
||||
bool "Build with newlib c library"
|
||||
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 EXTERNAL_LIBC
|
||||
bool "External C library"
|
||||
help
|
||||
Build with external/user provided C library.
|
||||
|
||||
endchoice #LIBC_IMPLEMENTATION
|
||||
|
||||
if NEWLIB_LIBC
|
||||
|
||||
if "$(ZEPHYR_TOOLCHAIN_VARIANT)" = "gnuarmemb"
|
||||
config NEWLIB_LIBC_NANO
|
||||
bool "Build with newlib-nano c library"
|
||||
depends on NEWLIB_LIBC
|
||||
bool "Build with newlib-nano C library"
|
||||
default y
|
||||
help
|
||||
Build with newlib-nano library, for small embedded apps.
|
||||
|
@ -29,7 +55,6 @@ endif
|
|||
config NEWLIB_LIBC_ALIGNED_HEAP_SIZE
|
||||
int "Newlib aligned heap size"
|
||||
depends on MPU_REQUIRES_POWER_OF_TWO_ALIGNMENT
|
||||
depends on NEWLIB_LIBC
|
||||
depends on USERSPACE
|
||||
default 0
|
||||
help
|
||||
|
@ -43,32 +68,22 @@ config NEWLIB_LIBC_ALIGNED_HEAP_SIZE
|
|||
|
||||
config NEWLIB_LIBC_FLOAT_PRINTF
|
||||
bool "Build with newlib float printf"
|
||||
depends on NEWLIB_LIBC
|
||||
help
|
||||
Build with floating point printf enabled. This will increase the size of
|
||||
the image.
|
||||
|
||||
config NEWLIB_LIBC_FLOAT_SCANF
|
||||
bool "Build with newlib float scanf"
|
||||
depends on NEWLIB_LIBC
|
||||
help
|
||||
Build with floating point scanf enabled. This will increase the size of
|
||||
the image.
|
||||
|
||||
config STDOUT_CONSOLE
|
||||
bool "Send stdout to console"
|
||||
depends on CONSOLE_HAS_DRIVER
|
||||
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.
|
||||
endif #NEWLIB_LIBC
|
||||
|
||||
# Minimal libc options
|
||||
if MINIMAL_LIBC
|
||||
|
||||
config MINIMAL_LIBC_MALLOC_ARENA_SIZE
|
||||
int "Size of the minimal libc malloc arena"
|
||||
depends on !NEWLIB_LIBC
|
||||
default 0
|
||||
help
|
||||
Indicate the size of the memory arena used for minimal libc's
|
||||
|
@ -77,10 +92,21 @@ config MINIMAL_LIBC_MALLOC_ARENA_SIZE
|
|||
|
||||
config MINIMAL_LIBC_LL_PRINTF
|
||||
bool "Build with minimal libc long long printf" if !64BIT
|
||||
depends on !NEWLIB_LIBC
|
||||
default y if 64BIT
|
||||
help
|
||||
Build with long long printf enabled. This will increase the size of
|
||||
the image.
|
||||
|
||||
endif #MINIMAL_LIBC
|
||||
|
||||
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.
|
||||
|
||||
endmenu
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue