| Message ID | 20260804114134.4028175-1-ross.burton@arm.com |
|---|---|
| State | Accepted, archived |
| Commit | 8b15cdc4b46fbf99d2575a1abf0c15cf14d87f7d |
| Headers | show |
| Series | u-boot: always use GCC to build | expand |
diff --git a/meta/recipes-bsp/u-boot/u-boot.inc b/meta/recipes-bsp/u-boot/u-boot.inc index 3e2f5aa1a5f..00a12f1bb91 100644 --- a/meta/recipes-bsp/u-boot/u-boot.inc +++ b/meta/recipes-bsp/u-boot/u-boot.inc @@ -3,6 +3,10 @@ PROVIDES = "virtual/bootloader" PACKAGE_ARCH = "${MACHINE_ARCH}" +# u-boot is best built with gcc +# https://docs.u-boot-project.org/en/latest/build/clang.html +TOOLCHAIN = "gcc" + DEPENDS += "${@bb.utils.contains('UBOOT_ENV_SUFFIX', 'scr', 'u-boot-mkimage-native', '', d)}" DEPENDS += "${@ 'u-boot-mkenvimage-native' if bb.utils.to_boolean(d.getVar('UBOOT_INITIAL_ENV_BINARY')) else ''}"
Previously, u-boot was almost always built with GCC because the kernel-arch inherit set TOOLCHAIN to KERNEL_TOOLCHAIN, which defaulted to 'gcc'. However, since kernel-arch inherit was removed, u-boot in theory now respects the default toolchain. In practise, the recipe hard-codes CC to be gcc, and there are known caveats building u-boot with clang[2]. In the long term we should be able to make this recipe respect TOOLCHAIN, as the upstream u-boot CI does build and test with clang, but for now fix the build by restoring the explicit use of gcc. [1] oe-core 8fb5470841b ("u-boot: Separate out from kernel-arch.bbclass") [2] https://docs.u-boot-project.org/en/latest/build/clang.html Signed-off-by: Ross Burton <ross.burton@arm.com> --- meta/recipes-bsp/u-boot/u-boot.inc | 4 ++++ 1 file changed, 4 insertions(+)