zephyr/lib
Andrew Boie d76ae46c0c lib: os: make snprintk fns generally available
The intention of disabling CONFIG_PRINTK is that all
invocations of it will compile to nothing, saving a lot
of runtime overhead and footprint since all the format
strings are completely dropped; instances of printk()
and related functions are no-ops.

However, some subsystems need snprintk() for string
processing, since the snprintf() implementations in even
minimal C library are too costly in text footprint or
stack usage for some applications. This processing is
required for the application to even function.

This patch continues to have disabling  CONFIG_PRINTK to
cause the non snprintk functions to become no-ops, but
now we always compile the necessary bits for snprintk(),
relying on gc-sections to discard them if unused.

z_vprintk() is now unconditionally defined in the header
since it is not tied to any particular output sink and
is intended for users who know exactly what they are
doing (it's in zephyr private scope).

Relates to: #21564

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2020-01-03 10:13:30 +01:00
..
cmsis_rtos_v1 kernel/sys_clock.h: Deprecate and convert uses of old conversions 2019-11-08 11:08:58 +01:00
cmsis_rtos_v2 kernel/sys_clock.h: Deprecate and convert uses of old conversions 2019-11-08 11:08:58 +01:00
gui global: Remove leading/trailing blank lines in files 2019-12-11 19:17:27 +01:00
libc libc: syscall: make aliases WEAK by default 2019-12-17 10:35:20 -08:00
os lib: os: make snprintk fns generally available 2020-01-03 10:13:30 +01:00
posix global: Remove leading/trailing blank lines in files 2019-12-11 19:17:27 +01:00
updatehub global: Remove leading/trailing blank lines in files 2019-12-11 19:17:27 +01:00
CMakeLists.txt libc: Added Kconfig choice to select C library 2019-11-01 14:18:36 +01:00
Kconfig kconfig: Clean up header comments and make them consistent 2019-11-04 17:31:27 -05:00