zephyr/lib/libc
Stephanos Ioannidis 28b22b276a lib: libc: newlib: Make newlib nano variant optional
The newlib nano variant is currently enabled by default when
`CONFIG_NEWLIB_LIBC=y` and the selected toolchain-architecture
combination includes the newlib nano variant support, even if
`CONFIG_NEWLIB_LIBC_NANO` is not selected by the user.

When `CONFIG_NEWLIB_LIBC=y`, this results in the newlib nano variant
being selected for some architectures (e.g. ARC, ARM and RISC-V), while
the full variant is selected for the rest of the architectures.

The above behaviour is problematic because there exist functional
differences between the newlib full and nano variants (e.g. C99 format
modifiers such as `hh`, `ll`, `z`, `j` and `t` are not available in the
newlib nano variant), and this effectively leads to different level of
C standard support across different architectures when
`CONFIG_NEWLIB_LIBC=y`.

This commit fixes this problem by making the `CONFIG_NEWLIB_LIBC_NANO`
not `default y` and requiring its user to explicitly set this symbol to
`y` when they want to use the newlib nano variant.

Signed-off-by: Stephanos Ioannidis <stephanos.ioannidis@nordicsemi.no>
2022-10-19 16:02:51 +02:00
..
arcmwdt lib: migrate includes to <zephyr/...> 2022-05-06 19:58:09 +02:00
armstdc lib: migrate includes to <zephyr/...> 2022-05-06 19:58:09 +02:00
minimal libc: minimal: Add C11 aligned_alloc 2022-10-03 10:13:25 +02:00
newlib lib: libc: newlib: make sure retargetable locking is enabled in toolchain 2022-09-21 08:59:24 +00:00
picolibc lib: picolibc: Use smaller default heap size 2022-09-30 13:52:24 +00:00
CMakeLists.txt lib/libc: Add picolibc support (aarch32, aarch64 and RISC-V) [v21] 2022-06-22 13:15:55 +02:00
Kconfig lib: libc: newlib: Make newlib nano variant optional 2022-10-19 16:02:51 +02:00