zephyr/lib/os
Keith Packard 7a5fcb8c60 libc/picolibc: Support 'long long' and 'minimal' printf variants
Picolibc's 'minimal' printf mode reduces functionality and size even more
than the 'integer' mode. Use this where memory is at a premium and where
the application knows that it does not require exact printf semantics.

1.8.5 adds two more printf variants, 'long long' and 'minimal'. The 'long
long' variant is the same as the 'integer' variant but with long long
support enabled. The 'minimal' variant reduces functionality and size even
more than the 'integer' mode. Applications can use this where memory is at
a premium and where the application does not require exact printf
semantics.

With these two added variants, the SDK has enough options so that all of
the cbprintf modes can be supported with the pre-compiled bits:

 1. CBPRINTF_NANO - picolibc's 'minimal' variant
 2. CBPRINTF_REDUCED_INTEGRAL - picolibc's 'integer' variant
 3. CBPRINTF_FULL_INTEGRAL - picolibc's 'long long' variant
 4. CBPRINTF_FB_SUPPORT - picolibc's 'double' variant

This patch makes the cbprintf Kconfig values drive the default picolibc
variant, disables picolibc variants not capable of supporting the required
cbprintf level, but allows applications to select more functionality in
picolibc than cbprintf requires.

Note that this depends on the SDK including picolibc 1.8.5. Without that,
selecting the 'minimal' or 'long long' variant in Zephyr will end up with
the default variant from picolibc, which is the full version with floating
point support. When using the module things will work as specified.

Signed-off-by: Keith Packard <keithp@keithp.com>
2023-11-20 06:07:58 -05:00
..
assert.c includes: prefer <zephyr/kernel.h> over <zephyr/zephyr.h> 2022-09-05 16:31:47 +02:00
base64.c
bitarray.c bitarray: Fix mismatch checking when matching regions 2023-05-25 16:31:23 -04:00
cbprintf_complete.c sys: util: migrate all files to DIV_ROUND_UP 2023-04-11 12:00:37 +02:00
cbprintf_nano.c lib: os: cbprintf_nano: Fix Coverity issue 316025 2023-06-02 15:07:34 -04:00
cbprintf_packaged.c lib: os: cbprintf: Add option to enable pointer checking 2023-10-31 09:01:38 +01:00
cbprintf.c
CMakeLists.txt lib: os: build fdtable conditionally 2023-09-28 06:25:16 -04:00
dec.c lib: os: dec: add misra-c2012 compliance changes 2023-07-28 11:15:44 +02:00
fdtable.c syscall: rename z_object_recycle -> k_object_recycle 2023-11-03 11:46:52 +01:00
heap_listener.c
heap-validate.c lib/os: use generic mem stats structure for heap 2022-07-12 13:59:26 +00:00
heap.c ARC: qemu: disable test where we trigger ARC QEMU bug #54720 2023-02-17 08:50:37 +09:00
heap.h
hex.c lib: os: hex: clarify controlling expression 2023-08-23 16:06:05 +01:00
json.c json: Skip unknown fields on parsing 2023-07-18 11:03:21 +00:00
Kconfig kconfig: Remove MP_NUM_CPUS usage 2023-10-03 17:45:53 +01:00
Kconfig.cbprintf libc/picolibc: Support 'long long' and 'minimal' printf variants 2023-11-20 06:07:58 -05:00
Kconfig.heap kernel: Integrate object core statistics 2023-09-30 08:04:14 +03:00
mem_blocks.c kernel: Integrate object core statistics 2023-09-30 08:04:14 +03:00
mpsc_pbuf.c lib: os: mpsc_pbuf: Fix concurrency issues 2022-12-29 10:33:29 +01:00
multi_heap.c lib: add mising braces to single line if statements 2022-07-06 11:00:45 -04:00
mutex.c syscall: rename Z_SYSCALL_ to K_SYSCALL_ 2023-11-03 11:46:52 +01:00
notify.c
onoff.c
p4wq.c kernel: move wait_q.h header to be internal 2023-09-12 12:55:36 -04:00
poweroff.c lib: os: add support for system power off 2023-08-04 16:59:36 +02:00
printk.c syscall: rename Z_OOPS -> K_OOPS 2023-11-03 11:46:52 +01:00
rb.c
reboot.c lib: os: reboot: include zephyr/cache.h 2023-01-24 14:35:49 +00:00
ring_buffer.c
sem.c kernel: move syscall_handler.h to internal include directory 2023-11-03 11:46:52 +01:00
shared_multi_heap.c shared_multi_heap: Use a data struct 2023-07-26 07:56:39 -04:00
spsc_pbuf.c spsc_pbuf: Fix cache wb in spsc_pbuf_free 2022-12-07 10:21:33 +00:00
thread_entry.c random: Rename random header 2023-10-10 14:23:50 +03:00
timeutil.c sys/time_units.h: Convert time conversion to macros 2023-09-28 16:15:27 +02:00
user_work.c
utf8.c zephyr: Fix n=0 for utf8_lcpy 2022-07-04 15:49:22 +02:00
winstream.c