Since Picolibc is now the default libc for Zephyr serving as a complete replacement of Newlib and only niche applications are using Newlib, there is no good reason to ship Newlib in the SDK GNU toolchain distribution by default in spite of its significant download size and disk space requirements.
With the above in mind, this proposes to rearrange the SDK GNU toolchain distribution such that:
Picolibc is the default libc under the toolchain prefix (i.e. (TOOLCHAIN_PREFIX)/(TARGET)/lib/lib{c,m}.a and the headers under (PREFIX)/(TARGET)/include will be from Picolibc).
Newlib is placed under its own prefix, (TOOLCHAIN_PREFIX)/newlib, and distributed as a separate "overlay" archive, toolchain_overlay_(TARGET).{tar.xz,7z}, that can be downloaded optionally.
Since Picolibc is now the default libc for Zephyr serving as a complete replacement of Newlib and only niche applications are using Newlib, there is no good reason to ship Newlib in the SDK GNU toolchain distribution by default in spite of its significant download size and disk space requirements.
With the above in mind, this proposes to rearrange the SDK GNU toolchain distribution such that:
(TOOLCHAIN_PREFIX)/(TARGET)/lib/lib{c,m}.a
and the headers under(PREFIX)/(TARGET)/include
will be from Picolibc).(TOOLCHAIN_PREFIX)/newlib
, and distributed as a separate "overlay" archive,toolchain_overlay_(TARGET).{tar.xz,7z}
, that can be downloaded optionally.