Configure Colibri imx7d SDK gcc for soft floating point?


I’m working with the Colibri imx7d SOM and build the embedded Linux image, including the SDK, with Yocto.
On our carrier board we have an additional MCU: STM32-M0. When I try building the firmware (bare metal C application)
for this MCU with the arm-tdx-linux-gnueabi-gcc generated in the Yocto SDK I get the compiler error that gnu/stubs-soft.h
is missing. I assume since imx7d has the ARM-A7 cores and the ARM-M4 core the compiler is built/configured only for hard floating point
and missing the soft floating point feature is fully intentional.

Still, is there a way that I could modify the recipe building the SDK gcc so that it can build code using the soft-fp API?
Probably, I don’t even need the corresponding libraries in the target sysroot, because that coce is not run on the SOM’s Linux.
Only the host build environment of the SDK would need to support the ARM-M0.

Many thanks for your suggestions.

I think arm-linux-gnueabi- is for Linux. Bare metal variant is not -linux- but -none-.

Hello @Edward ,

yes, I did not think of this. So the compiler generated by the SDK might not at all suitable for bare metal code on M0.
Yet, I wonder how one is supposed to build the firmware for the M4 on the Colibri imx7 SOM. I believe Toradex recommends FreeRTOS for this - so no Linux there either.

Best regards,

Hello @Otmar@hexagon ,

Yes, that’s correct! There is no linux for Baremetal, and it would be FreeRTOS

Best Regards,