
On 4/6/23 01:48, Tom Rini wrote:
Hey all,
I decided to take a look again at what's needed to build and boot ARM platforms when building with clang. The good news is that this generally works now. Some size-constrained platforms don't build right now but I was able to test a reasonable part of my lab. This series also depends on: https://patchwork.ozlabs.org/project/uboot/patch/20200604203515.12971-1-trin... to fix the warning there.
At this point LTO + clang requires a bit more work, and to use llvm-ld. As the platform I was trying was still too large to link even with this, I've set that investigation aside for now.
I've boot tested clang-16 on Pi 3 (32bit, 64bit, arm64) and libretech-cc, and I'll be testing pine64_plus soon along with maybe mx6cuboxi and seeing what the failures are on am65x_evm / j721e_evm (these platforms require a bit more scripting on my part to make build and test clean).
I tried to build qemu_arm64_defconfig with origin/WIP/update-clang-for-arm.
CROSS_COMPILE=aarch64-linux-gnu- HOSTCC=clang CC="clang make-target aarch64-linux-gnu" -j$(nproc)
I see a bunch of warnings and a build failure due to
examples/standalone/hello_world.c:15: undefined reference to `printf'
Best regards
Heinrich