如果内核版本等于或大于5.0,那么需要在通用KASAN和基于软件标签的KASAN之间做出选择,前者的配置宏是CONFIG_KASAN_GENERIC,后者的配置宏是CONFIG_KASAN_SW_TAGS。
menuconfig无法勾选CONFIG_KASAN_SW_TAGS=y
CONFIG_KASAN_SW_TAGS 依赖 CC_HAS_KASAN_SW_TAGS
CC_HAS_KASAN_SW_TAGS 无法勾选,查看Kconfig.kasan文件,可以看到对 编译器有依赖。
查找资料,基于软件标签的KASAN需要GCC 11+或者内核支持的任何Clang版本。当前使用的交叉编译器版本是gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- ,需要替换高版本gcc
更换·成arm-gnu-toolchain-13.2.Rel1-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-, 可以勾选CONFIG_KASAN_SW_TAGS=y