sdk-ng
sdk-ng copied to clipboard
microblaze: atomic compare-and-swap returns incorrect value
Microblaze toolchain's atomic compare-and-swap returns the inverse boolean value causing at least ungetc
implementation in picolibc
to hang.
The issue was fixed in Xilinx's gcc via the below patch but this has not made it to upstream and thus not to zephyr-sdk.
https://github.com/Xilinx/meta-xilinx/blob/master/meta-microblaze/recipes-devtools/gcc/gcc-12/0009-Patch-microblaze-Fix-atomic-boolean-return-value.patch
CC @keith-packard