怎么开启基于软件标签的kasan, CONFIG_KASAN_SW_TAGS=y

如果内核版本等于或大于5.0,那么需要在通用KASAN和基于软件标签的KASAN之间做出选择,前者的配置宏是CONFIG_KASAN_GENERIC,后者的配置宏是CONFIG_KASAN_SW_TAGS。

menuconfig无法勾选CONFIG_KASAN_SW_TAGS=y
怎么开启基于软件标签的kasan, CONFIG_KASAN_SW_TAGS=y_第1张图片
CONFIG_KASAN_SW_TAGS 依赖 CC_HAS_KASAN_SW_TAGS
怎么开启基于软件标签的kasan, CONFIG_KASAN_SW_TAGS=y_第2张图片
CC_HAS_KASAN_SW_TAGS 无法勾选,查看Kconfig.kasan文件,可以看到对 编译器有依赖。怎么开启基于软件标签的kasan, CONFIG_KASAN_SW_TAGS=y_第3张图片

查找资料,基于软件标签的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
怎么开启基于软件标签的kasan, CONFIG_KASAN_SW_TAGS=y_第4张图片
怎么开启基于软件标签的kasan, CONFIG_KASAN_SW_TAGS=y_第5张图片

你可能感兴趣的:(#kasan,arm开发,linux)