crosstool-ng/config/libc/newlib.in.2
Alexey Neyman d20091d730 Newlib's LTO only makes sense if GCC supports it
Signed-off-by: Alexey Neyman <stilor@att.net>
2017-02-18 23:21:09 -08:00

177 lines
5.5 KiB
Groff

# newlib second-part options
config LIBC_NEWLIB_IO_C99FMT
bool
prompt "Enable IOs on C99 formats"
help
Enable support for IOs on C99 formats.
config LIBC_NEWLIB_IO_LL
bool
prompt "Enable IOs on long long"
help
Enable support for IOs on long long integers.
config LIBC_NEWLIB_IO_FLOAT
bool
prompt "Enable IOs on floats and doubles"
help
Enable support for IOs on floating point
values (float and double).
config LIBC_NEWLIB_IO_LDBL
bool
prompt "Enable IOs on long doubles"
depends on LIBC_NEWLIB_IO_FLOAT
help
Enable support for IOs on long doubles.
config LIBC_NEWLIB_IO_POS_ARGS
bool
prompt "Enable printf-family positional arg support"
help
Enable printf-family positional arg support.
config LIBC_NEWLIB_FVWRITE_IN_STREAMIO
bool
prompt "Vector buffer mechanism to support stream IO buffering"
default y
help
NEWLIB implements the vector buffer mechanism to support stream IO
buffering required by C standard. This feature is possibly
unnecessary for embedded systems which won't change file buffering
with functions like `setbuf' or `setvbuf'. The buffering mechanism
still acts as default for STDIN/STDOUT/STDERR even if this option
is specified.
config LIBC_NEWLIB_UNBUF_STREAM_OPT
bool
prompt "Optimize fprintf to unbuffered unix file"
default y
help
NEWLIB does optimization when `fprintf to write only unbuffered unix
file'. It creates a temorary buffer to do the optimization that
increases stack consumption by about `BUFSIZ' bytes. Disabling this option
disables the optimization and saves size of text and stack.
config LIBC_NEWLIB_FSEEK_OPTIMIZATION
bool
prompt "Fseek optimisation"
default y
help
Disabling fseek optimisation can decrease code size.
config LIBC_NEWLIB_DISABLE_SUPPLIED_SYSCALLS
bool
prompt "Disable the syscalls supplied with newlib"
help
Disable the syscalls that come with newlib. You
will have to implement your own _sbrk, _read,
_write... If you plan to port newlib to a new
platform/board, say Yes.
config LIBC_NEWLIB_REGISTER_FINI
bool
prompt "Enable finalization function registration using atexit"
help
Enable finalization function registration using atexit.
config LIBC_NEWLIB_ATEXIT_DYNAMIC_ALLOC
bool
prompt "Enable dynamic allocation of atexit entries"
default y
help
Enable dynamic allocation of atexit entries.
config LIBC_NEWLIB_GLOBAL_ATEXIT
bool
prompt "Enable atexit data structure as global variable"
help
Enable atexit data structure as global variable. By doing so it is
move out of _reent structure, and can be garbage collected if atexit
is not referenced.
config LIBC_NEWLIB_LITE_EXIT
bool
prompt "Enable lite exit"
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_NEWLIB_REENT_SMALL
bool
prompt "Enable small reentrant struct support"
help
Enable small reentrant struct support.
config LIBC_NEWLIB_MULTITHREAD
bool
prompt "Enable support for multiple threads"
default y
help
Enable support for multiple threads.
config LIBC_NEWLIB_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_NEWLIB_WIDE_ORIENT
bool
prompt "Allow wide C99 stream orientation"
default y
help
C99 states that each stream has an orientation, wide or byte. This
feature is possibly unnecessary for embedded systems which only do
byte input/output operations on stream. Disabling this feature can
decrease code size.
config LIBC_NEWLIB_ENABLE_TARGET_OPTSPACE
bool
prompt "Optimize newlib for size"
default y
help
Pass --enable-target-optspace to newlib configure.
This will compile newlib with -Os.
config LIBC_NEWLIB_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_NEWLIB_NANO_MALLOC
bool
prompt "Enable Nano Malloc"
depends on LIBC_NEWLIB_2_1_or_later
help
NEWLIB 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_NEWLIB_NANO_FORMATTED_IO
bool
prompt "Enable Nano Formatted I/O"
depends on LIBC_NEWLIB_2_2_or_later
help
This builds NEWLIB with a special implementation of formatted I/O
functions, designed to lower the size of application on small systems
with size constraint issues. This option does not affect wide-char
formatted I/O functions.
config LIBC_NEWLIB_EXTRA_CONFIG_ARRAY
string
prompt "Extra config for newlib"
default ""
help
Extra flags to pass onto ./configure when configuring the newlib.