crosstool-ng/config/comp_libs/picolibc.in
Keith Packard 74949b1d35 picolibc: Clean up configuration a bit
Use LIBC_PICOLIBC_CXA_ATEXIT to keep this name in the same 'namespace'
as the other picolibc config names.

Enable retargetable locking by default. This allows the few locks in
picolibc to be implemented by the execution environment, rather than
disabling the locking code.

Signed-off-by: Keith Packard <keithp@keithp.com>
2021-01-11 22:45:01 -08:00

123 lines
3.9 KiB
Plaintext

# picolibc options
## depends on BARE_METAL && CONFIGURE_has_meson && CONFIGURE_has_ninja
## help This option adds Picolibc to an existing configuration which may have
## help a C library, allowing you to install both and select between them
## help when compiling applications using the toolchain
## help
## help Picolibc is a C library intended for use on embedded systems. It is a
## help conglomeration of several library parts, all under BSD-compatible software
## help licenses that make them easily usable on embedded products.
config LIBC_PICOLIBC_CXA_ATEXIT
def_bool y
select LIBC_PROVIDES_CXA_ATEXIT
config LIBC_PICOLIBC_TARGET_CFLAGS
string
prompt "Target CFLAGS for picolibc"
default ""
help
Used to add specific options when compiling the target libraries
(eg. -ffunction-sections -fdata-sections), which can't be defined
in global TARGET_CFLAGS, because they shall be not used for the
gcc target libraries.
Note: Both TARGET_CFLAGS and LIBC_PICOLIBC_TARGET_CFLAGS are used
to compile the libraries.
Leave blank if you don't know better.
config LIBC_PICOLIBC_IO_C99FMT
bool
prompt "Enable IOs on C99 formats"
default y
help
Enable support for IOs on C99 formats.
config LIBC_PICOLIBC_REGISTER_FINI
bool
prompt "Enable finalization function registration using atexit"
help
Enable finalization function registration using atexit.
config LIBC_PICOLIBC_ATEXIT_DYNAMIC_ALLOC
bool
prompt "Enable dynamic allocation of atexit entries"
help
Enable dynamic allocation of atexit entries.
config LIBC_PICOLIBC_GLOBAL_ATEXIT
bool
prompt "Enable atexit data structure as global variable"
help
Enable atexit data structure as global variable, instead
of being thread-local.
config LIBC_PICOLIBC_LITE_EXIT
bool
prompt "Enable lite exit"
default y
help
Enable lite exit, a size-reduced implementation of exit that doesn't
invoke clean-up functions such as _fini or global destructors.
config LIBC_PICOLIBC_MULTITHREAD
bool
prompt "Enable support for multiple threads"
default y
help
Enable support for multiple threads.
config LIBC_PICOLIBC_RETARGETABLE_LOCKING
bool
prompt "Enable retargetable locking"
default y
help
Enable retargetable locking to allow the operating system to override
the dummy lock functions defined within picolibc.
config LIBC_PICOLIBC_EXTRA_SECTIONS
bool
prompt "Place each function & data element in their own section"
help
Place each function & data symbol in their own section. This allows
the linker to garbage collect unused symbols at link time.
config LIBC_PICOLIBC_ENABLE_TARGET_OPTSPACE
bool
prompt "Optimize picolibc for size"
default y
help
Pass --enable-target-optspace to picolibc configure.
This will compile picolibc with -Os.
config LIBC_PICOLIBC_LTO
bool
prompt "Enable Link Time Optimization"
depends on CC_GCC_USE_LTO
help
Builds the libraries with -flto to enable more aggressive link time
optimization. You will need to add -flto-partition=one to your
application's link line to keep the RETURN assembler macro together
with it's consumers.
config LIBC_PICOLIBC_NANO_MALLOC
bool
prompt "Enable Nano Malloc"
default y
help
PICOLIBC has two implementations of malloc family's functions, one in
`mallocr.c' and the other one in `nano-mallocr.c'. This options
enables the nano-malloc implementation, which is for small systems
with very limited memory. Note that this implementation does not
support `--enable-malloc-debugging' any more.
config LIBC_PICOLIBC_EXTRA_CONFIG_ARRAY
string
prompt "Extra config for picolibc"
default ""
help
Extra flags to pass to meson when configuring picolibc.