Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

libc: Default to picolibc where supported #57340

Merged
merged 2 commits into from
Sep 4, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lib/libc/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,8 @@ menu "C Library"
choice LIBC_IMPLEMENTATION
prompt "C Library Implementation"
default EXTERNAL_LIBC if NATIVE_BUILD
default PICOLIBC
default NEWLIB_LIBC if REQUIRES_FULL_LIBC
default PICOLIBC if REQUIRES_FULL_LIBC
default MINIMAL_LIBC
keith-packard marked this conversation as resolved.
Show resolved Hide resolved
keith-zephyr marked this conversation as resolved.
Show resolved Hide resolved
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dont we end up with both picolibc and minimal libc set as default? or does order here play a role?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Kconfig appears to pick the first which matches and which can be enabled -- the goal is to use picolibc where supported otherwise use minimal C library.


config MINIMAL_LIBC
Expand Down
12 changes: 12 additions & 0 deletions tests/kernel/cache/testcase.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,15 @@ tests:
- qemu_xtensa
- qemu_cortex_a53
- nsim_em
kernel.cache.api.minimallibc:
tags:
- kernel
- cache
- libc
filter: CONFIG_CACHE_MANAGEMENT and CONFIG_MINIMAL_LIBC_SUPPORTED
integration_platforms:
- qemu_xtensa
- qemu_cortex_a53
- nsim_em
extra_configs:
- CONFIG_MINIMAL_LIBC=y
7 changes: 7 additions & 0 deletions tests/kernel/context/testcase.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,13 @@ tests:
extra_configs:
- CONFIG_TEST_EXTRA_STACK_SIZE=1024
min_ram: 16
kernel.context.minimallibc:
filter: CONFIG_MINIMAL_LIBC_SUPPORTED
tags: kernel libc
extra_configs:
- CONFIG_TEST_EXTRA_STACK_SIZE=1024
- CONFIG_MINIMAL_LIBC=y
min_ram: 16
linker.linker_generator:
platform_allow: qemu_cortex_m3
tags:
Expand Down
8 changes: 8 additions & 0 deletions tests/kernel/device/testcase.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,14 @@ tests:
tags:
- kernel
- device
kernel.device.minimallibc:
filter: CONFIG_MINIMAL_LIBC_SUPPORTED
tags:
- kernel
- device
- libc
extra_configs:
- CONFIG_MINIMAL_LIBC=y
kernel.device.pm:
tags:
- kernel
Expand Down
8 changes: 8 additions & 0 deletions tests/kernel/early_sleep/testcase.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,11 @@ tests:
tags:
- kernel
- sleep
kernel.common.sleep.minimallibc:
filter: CONFIG_MINIMAL_LIBC_SUPPORTED
tags:
- kernel
- sleep
- libc
extra_configs:
- CONFIG_MINIMAL_LIBC=y
21 changes: 21 additions & 0 deletions tests/kernel/interrupt/testcase.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,24 @@ tests:
filter: not CONFIG_TRUSTED_EXECUTION_NONSECURE
extra_configs:
- CONFIG_QEMU_ICOUNT=y
arch.interrupt.minimallibc:
filter: not CONFIG_TRUSTED_EXECUTION_NONSECURE and CONFIG_MINIMAL_LIBC_SUPPORTED
# nios2 excluded, see #22956
arch_exclude: nios2
platform_exclude: qemu_cortex_m0
tags:
- kernel
- interrupt
- libc
extra_configs:
- CONFIG_MINIMAL_LIBC=y
arch.interrupt.qemu_cortex_m0.minimallibc:
filter: not CONFIG_TRUSTED_EXECUTION_NONSECURE and CONFIG_MINIMAL_LIBC_SUPPORTED
platform_allow: qemu_cortex_m0
tags:
- kernel
- interrupt
- libc
extra_configs:
- CONFIG_QEMU_ICOUNT=y
- CONFIG_MINIMAL_LIBC=y
10 changes: 10 additions & 0 deletions tests/kernel/mp/testcase.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,13 @@ tests:
filter: CONFIG_MP_MAX_NUM_CPUS > 1
depends_on:
- smp
kernel.multiprocessing.minimallibc:
tags:
- kernel
- smp
- libc
filter: CONFIG_MP_MAX_NUM_CPUS > 1 and CONFIG_MINIMAL_LIBC_SUPPORTED
depends_on:
- smp
extra_configs:
- CONFIG_MINIMAL_LIBC=y
6 changes: 6 additions & 0 deletions tests/kernel/obj_tracking/testcase.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,9 @@ tests:
kernel.objects.tracking:
tags: kernel
platform_exclude: qemu_x86_tiny
kernel.objects.tracking.minimallibc:
filter: CONFIG_MINIMAL_LIBC_SUPPORTED
tags: kernel libc
platform_exclude: qemu_x86_tiny
extra_configs:
- CONFIG_MINIMAL_LIBC=y
5 changes: 5 additions & 0 deletions tests/kernel/pending/testcase.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
tests:
kernel.objects:
tags: kernel
kernel.objects.minimallibc:
filter: CONFIG_MINIMAL_LIBC_SUPPORTED
tags: kernel libc
extra_configs:
- CONFIG_MINIMAL_LIBC=y
13 changes: 13 additions & 0 deletions tests/kernel/poll/testcase.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,16 @@ tests:
platform_exclude:
- nrf52dk_nrf52810
- qemu_arc_hs6x
kernel.poll.minimallibc:
filter: CONFIG_MINIMAL_LIBC_SUPPORTED
ignore_faults: true
tags:
- kernel
- userspace
- libc
# FIXME: qemu_arc_hs6x is excluded due to a run-time failure, see #49492
platform_exclude:
- nrf52dk_nrf52810
- qemu_arc_hs6x
extra_configs:
- CONFIG_MINIMAL_LIBC=y
9 changes: 9 additions & 0 deletions tests/kernel/queue/testcase.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,12 @@ tests:
- kernel
- userspace
ignore_faults: true
kernel.queue.minimallibc:
filter: CONFIG_MINIMAL_LIBC_SUPPORTED
tags:
- kernel
- userspace
- libc
ignore_faults: true
extra_configs:
- CONFIG_MINIMAL_LIBC=y
8 changes: 8 additions & 0 deletions tests/kernel/sleep/testcase.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,11 @@ tests:
tags:
- kernel
- sleep
kernel.common.timing.minimallibc:
filter: CONFIG_MINIMAL_LIBC_SUPPORTED
tags:
- kernel
- sleep
- libc
extra_configs:
- CONFIG_MINIMAL_LIBC=y
9 changes: 9 additions & 0 deletions tests/kernel/smp/testcase.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,12 @@ tests:
- smp
ignore_faults: true
filter: (CONFIG_MP_MAX_NUM_CPUS > 1)
kernel.multiprocessing.smp.minimallibc:
tags:
- kernel
- smp
- libc
ignore_faults: true
filter: (CONFIG_MP_MAX_NUM_CPUS > 1) and CONFIG_MINIMAL_LIBC_SUPPORTED
extra_configs:
- CONFIG_MINIMAL_LIBC=y
11 changes: 11 additions & 0 deletions tests/kernel/smp_boot_delay/testcase.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,14 @@ tests:
platform_allow: intel_adsp_cavs25
integration_platforms:
- intel_adsp_cavs25
kernel.multiprocessing.smp_boot_delay.minimallibc:
filter: CONFIG_MINIMAL_LIBC_SUPPORTED
tags:
- kernel
- smp
- libc
platform_allow: intel_adsp_cavs25
integration_platforms:
- intel_adsp_cavs25
extra_configs:
- CONFIG_MINIMAL_LIBC=y
12 changes: 12 additions & 0 deletions tests/kernel/spinlock/testcase.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,15 @@ tests:
filter: CONFIG_SMP and CONFIG_MP_MAX_NUM_CPUS > 1 and CONFIG_MP_MAX_NUM_CPUS <= 4
depends_on:
- smp
kernel.multiprocessing.spinlock.minimallibc:
tags:
- kernel
- smp
- spinlock
- libc
filter: CONFIG_SMP and CONFIG_MP_MAX_NUM_CPUS > 1 and CONFIG_MP_MAX_NUM_CPUS <= 4 and
CONFIG_MINIMAL_LIBC_SUPPORTED
depends_on:
- smp
extra_configs:
- CONFIG_MINIMAL_LIBC=y
10 changes: 10 additions & 0 deletions tests/kernel/xip/testcase.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,13 @@ tests:
integration_platforms:
- qemu_arc_em
- qemu_x86_xip
arch.common.xip.minimallibc:
filter: CONFIG_XIP and CONFIG_MINIMAL_LIBC_SUPPORTED
tags:
- kernel
- xip
integration_platforms:
- qemu_arc_em
- qemu_x86_xip
extra_configs:
- CONFIG_MINIMAL_LIBC=y
Loading