aboutsummaryrefslogtreecommitdiff
path: root/drivers/clocksource/timer-clint.c
diff options
context:
space:
mode:
authorWende Tan <[email protected]>2023-10-17 15:21:04 -0700
committerPalmer Dabbelt <[email protected]>2024-01-22 10:06:29 -0800
commit021d23428bdbae032294e8f4a29cb53cb50ae71c (patch)
treed02f238ccfb362b7784fd20a17918e9f5b75d519 /drivers/clocksource/timer-clint.c
parent3a6dd5f614a13033a47eaf439ac34e7b6fbc7705 (diff)
RISC-V: build: Allow LTO to be selected
Allow LTO to be selected for RISC-V, only when LLD >= 14, since there is an issue [1] in prior LLD versions that prevents LLD to generate proper machine code for RISC-V when writing `nop`s. To avoid boot failures in QEMU [2], '-mattr=+c' and '-mattr=+relax' need to be passed via '-mllvm' to ld.lld, as there appears to be an issue with LLVM's target-features and LTO [3], which can result in incorrect relocations to branch targets [4]. Once this is fixed in LLVM, it can be made conditional on affected ld.lld versions. Disable LTO for arch/riscv/kernel/pi, as llvm-objcopy expects an ELF object file when manipulating the files in that subfolder, rather than LLVM bitcode. [1] https://github.com/llvm/llvm-project/issues/50505, resolved by LLVM commit e63455d5e0e5 ("[MC] Use local MCSubtargetInfo in writeNops") [2] https://github.com/ClangBuiltLinux/linux/issues/1942 [3] https://github.com/llvm/llvm-project/issues/59350 [4] https://github.com/llvm/llvm-project/issues/65090 Tested-by: Wende Tan <[email protected]> Signed-off-by: Wende Tan <[email protected]> Co-developed-by: Nathan Chancellor <[email protected]> Signed-off-by: Nathan Chancellor <[email protected]> Reviewed-by: Conor Dooley <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Palmer Dabbelt <[email protected]>
Diffstat (limited to 'drivers/clocksource/timer-clint.c')
0 files changed, 0 insertions, 0 deletions