Originally reported by Nathaniel Hourt[1], U-Boot fails to boot on
JH7110 platforms (starfive_visionfive2_defconfig) when building with
Clang.

This series fixes configuration generation with Clang's preprocessor and
add an alternative codepath for RISC-V to access gd to workaround
misoptimization of Clang, which is sufficient for building images for
JH7110 boards.

Tested with

- starfive_visionfive2_defconfig
- qemu-riscv64_smode_defconfig
- sifive_unleashed_defconfig

built with either GCC 14 or LLVM 19.

Note that images built with LLVM lld are still broken and binutils ld
has to be used for now. To test the changes on JH7110 platforms, this
patch[2] must be applied for SPL to function.

[1]: 
https://lore.kernel.org/u-boot/932979cb47c4fded7ac19216ca172...@nathaniel.land/
[2]: 
https://lore.kernel.org/all/20250330162421.238483-1-heinrich.schucha...@canonical.com/

Yao Zi (2):
  Makefile: Strip leading spaces when preprocessing generated_defconfig
  riscv: Access gd with inline assembly when building with LTO or Clang

 arch/riscv/cpu/cpu.c                 |  6 ++++++
 arch/riscv/include/asm/global_data.h | 19 +++++++++++++++++++
 common/board_r.c                     |  4 +++-
 common/init/board_init.c             |  7 +++++--
 scripts/kconfig/Makefile             |  1 +
 5 files changed, 34 insertions(+), 3 deletions(-)

-- 
2.49.0

Reply via email to