On Wednesday 29. May 2019 15.20.01 Matthias Lange wrote:
The issue we have with "standard" cross toolchains is the libgcc they are shipping. It is compiled for ARMv7 and contains instructions that are unknown / illegal on ARMv6k. The mean thing is, that our build system tells GCC via "-march=armv6zk" what code to generate but then links the wrong libgcc.
Some of these compiler configuration issues are awkward. My problem was that although there are switches for hard- and soft-float, appropriate libgcc variants need to be available, and the Debian toolchains do not provide them all. I actually don't remember if there is a need for completely separate compilers, but I would hope not (and yet not be surprised if it were the case).
Of course, it is one thing to be able to avoid certain instructions in one's own code, quite another to have to deal with library code liberally using "illegal" instructions. I got quite far with bare metal code, even targeting microcontrollers like the PIC32 with the MIPS compilers, for instance.
So, the Buildroot compiler it had to be.
Paul
P.S. I have a selfish interest in following this as I could imagine also trying out L4Re on the Raspberry Pi at some point. I guess that the framebuffer isn't currently supported though.