解决arm64 linux kernel O0编译时报错的问题
最近在学习 linux driver 时, 在 qemu 上使用 aarch64 架构来跑 Image, 在想使用单步跑看看 driver 的某些执行路径时, 发现给 driver 添加 O0
编译时会有很多错误.
比如在 Linux-6.10
中, 我们在如下修改状态下, 使用命令 make LLVM=1 ARCH=arm64 defconfig && make LLVM=1 ARCH=arm64 Image -j12
编译的时候
1 | diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig |
会报出汗多的 error: invalid operand for inline asm constraint 'i'
错误. 下面我们就来探究下这个问题.