Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Issues with 3.x prior to 3.7: picolibc: I was not able to get Kconfig to build picolibc from source in a way that was compatible with both 3.7 and prior versions of 3.x due to Zephyr changing PICOLIBC_USE_MODULE from a bool to a choice. Setting options in each prj.conf also doesn't work because it generates warnings for undefined symbols in older versions. If there were some way to have version-conditional behavior in Kconfig, that would make it possible to bring back older 3.x compat. ctors: zephyr-macros uses ctors to run init code. This required setting CONFIG_CPLUSPLUS. That has been deprecated and removed in 3.7, but there is now a separate option, CONFIG_STATIC_INIT_GNU, that runs ctors. TOOLCHAIN_SUPPORTS_STATIC_INIT_GNU happened to be added in the same commit, so we can use this to distinguish between setting CPLUSPLUS on 2.x and STATIC_INIT_GNU on 3.7. Prior to 3.7, STATIC_INIT_GNU does not exist and CPLUSPLUS conflicts with PICOLIBC_USE_MODULE. It might be possible to avoid this mess by not relying on C++ ctors.
- Loading branch information