Open stephanosio opened 1 year ago
cc @keith-packard
Picolibc will need to be supported before the Zephyr SDK microblazeel toolchain can be considered stable and the microblaze architecture support can be merged.
I'm sorry. I couldn't fully understand this statement. Are you saying, picolibc should merge before microblaze support is merged? If yes, I agree. Making microblaze support picolibc (if any additional work becomes necessary) should be part of the microblaze work and should not block the greater picture here.
Thus, the next step here would be to blacklist microblazeel from picolibc build process, right?
@alpsayin Picolibc support is already part of the upstream Zephyr and it will soon become the default libc for Zephyr; meaning, if you want to upstream Microblaze support, it will need to have Picolibc support (i.e. Picolibc will need to be able to build for it).
Thus, the next step here would be to blacklist microblazeel from picolibc build process, right?
Yes, that is done here: https://github.com/stephanosio/zephyr-sdk-ng/commit/88a8937e8130a05b358ca82d32365e4ece671eb0 (note that the microblazeel config file did not enable Picolibc, when it should have).
Ah okay, got it, much clearer now. Thank you very much. The issue then seem to be simply resolvable by adding microblaze to support cpus list. What comes next is a different story 🙃
Okay, it's a bit more than that. I'm on this.
Ah okay, got it, much clearer now. Thank you very much. The issue then seem to be simply resolvable by adding microblaze to support cpus list. What comes next is a different story upside_down_face
The cmake code for picolibc (used while building picolibc as a module) allows "unsupported" architectures to build, but the meson code (as used by the SDK) checks to make sure someone has actually validated that the target is supported and has all of the bits necessary for complete C language support. That requires setjmp/longjmp code, but can also include thread local storage helpers, math exception definitions, qemu startup code and as much architecture-specific acceleration as you like. This is covered in the picolibc documentation here:
https://github.com/picolibc/picolibc#supported-architectures
Droping links:
picolibc
pull requested to upstream: https://github.com/zephyrproject-rtos/picolibc/pull/441sdk-ng
draft pull request pointing to above PR to test build: https://github.com/zephyrproject-rtos/sdk-ng/pull/641
Picolibc build fails for the
microblazeel-zephyr-elf
target:Full build log: log_linux-x86_64_microblazeel-zephyr-elf.zip
Picolibc will need to be supported before the Zephyr SDK microblazeel toolchain can be considered stable and the microblaze architecture support can be merged.