You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by gu...@apache.org on 2021/11/02 16:32:58 UTC

[incubator-nuttx] 03/03: boards/sim: Add new config for KASan

This is an automated email from the ASF dual-hosted git repository.

gustavonihei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git

commit df877a8a91ce28e69034f56011c9e2ebe93b6fb2
Author: Xiang Xiao <xi...@xiaomi.com>
AuthorDate: Fri Oct 15 22:45:40 2021 +0800

    boards/sim: Add new config for KASan
    
    Signed-off-by: Xiang Xiao <xi...@xiaomi.com>
---
 boards/sim/sim/sim/configs/kasan/defconfig | 32 ++++++++++++++++++++++++++++++
 boards/sim/sim/sim/scripts/Make.defs       | 15 +++++++++-----
 tools/ci/testlist/sim-01.dat               |  9 ++++++---
 3 files changed, 48 insertions(+), 8 deletions(-)

diff --git a/boards/sim/sim/sim/configs/kasan/defconfig b/boards/sim/sim/sim/configs/kasan/defconfig
new file mode 100644
index 0000000..1a98918
--- /dev/null
+++ b/boards/sim/sim/sim/configs/kasan/defconfig
@@ -0,0 +1,32 @@
+#
+# This file is autogenerated: PLEASE DO NOT EDIT IT.
+#
+# You can use "make menuconfig" to make any modifications to the installed .config file.
+# You can then do "make savedefconfig" to generate a new defconfig file that includes your
+# modifications.
+#
+CONFIG_ARCH="sim"
+CONFIG_ARCH_BOARD="sim"
+CONFIG_ARCH_BOARD_SIM=y
+CONFIG_ARCH_CHIP="sim"
+CONFIG_ARCH_SIM=y
+CONFIG_BOARDCTL_POWEROFF=y
+CONFIG_BUILTIN=y
+CONFIG_DEBUG_FEATURES=y
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_DEV_LOOP=y
+CONFIG_DEV_ZERO=y
+CONFIG_EXAMPLES_HELLO=y
+CONFIG_FS_BINFS=y
+CONFIG_FS_PROCFS=y
+CONFIG_MM_KASAN=y
+CONFIG_NSH_ARCHINIT=y
+CONFIG_NSH_BUILTIN_APPS=y
+CONFIG_NSH_READLINE=y
+CONFIG_READLINE_TABCOMPLETION=y
+CONFIG_SCHED_HAVE_PARENT=y
+CONFIG_SCHED_ONEXIT=y
+CONFIG_SCHED_WAITPID=y
+CONFIG_SYSTEM_NSH=y
+CONFIG_TESTING_OSTEST=y
+CONFIG_USER_ENTRYPOINT="nsh_main"
diff --git a/boards/sim/sim/sim/scripts/Make.defs b/boards/sim/sim/sim/scripts/Make.defs
index 080eb70..119d6a1 100644
--- a/boards/sim/sim/sim/scripts/Make.defs
+++ b/boards/sim/sim/sim/scripts/Make.defs
@@ -51,10 +51,6 @@ ifeq ($(CONFIG_STACK_CANARIES),y)
   ARCHOPTIMIZATION += -fstack-protector-all
 endif
 
-ifeq ($(CONFIG_SIM_SANITIZE),y)
-  ARCHOPTIMIZATION += -fsanitize=address -fsanitize=undefined -fno-omit-frame-pointer
-endif
-
 ifeq ($(CONFIG_ARCH_COVERAGE),y)
   ARCHOPTIMIZATION += -fprofile-arcs -ftest-coverage
 endif
@@ -133,6 +129,14 @@ ifeq ($(CONFIG_LIBCXX),y)
   endif
 endif
 
+ifeq ($(CONFIG_SIM_SANITIZE),y)
+  CFLAGS += -fsanitize=address -fsanitize=undefined -fno-omit-frame-pointer
+  CXXFLAGS += -fsanitize=address -fsanitize=undefined -fno-omit-frame-pointer
+else ifeq ($(CONFIG_MM_KASAN),y)
+  CFLAGS += -fsanitize=kernel-address
+  CXXFLAGS += -fsanitize=kernel-address
+endif
+
 # Loadable module definitions
 
 CMODULEFLAGS = $(CFLAGS)
@@ -198,7 +202,8 @@ endif
 
 ifeq ($(CONFIG_SIM_SANITIZE),y)
   CCLINKFLAGS += -fsanitize=address -fsanitize=undefined -fno-omit-frame-pointer
-  HOSTLDFLAGS += -fsanitize=address -fsanitize=undefined -fno-omit-frame-pointer
+else ifeq ($(CONFIG_MM_KASAN),y)
+  CCLINKFLAGS += -fsanitize=kernel-address
 endif
 
 HOSTCFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) \
diff --git a/tools/ci/testlist/sim-01.dat b/tools/ci/testlist/sim-01.dat
index 21fc19b..0c1e472 100644
--- a/tools/ci/testlist/sim-01.dat
+++ b/tools/ci/testlist/sim-01.dat
@@ -6,9 +6,8 @@
 -Darwin,sim:cxxtest
 -Darwin,sim:libcxxtest
 
-# Do not build Linux configs
--Darwin,sim:linuxi2c
--Darwin,sim:linuxspi
+# clang doesn't -fsanitize=kernel-address
+-Darwin,sim:kasan
 
 # macOS doesn't support 32bit(CONFIG_SIM_M32=y) anymore
 -Darwin,sim:elf
@@ -16,6 +15,10 @@
 -Darwin,sim:loadable
 -Darwin,sim:module32
 
+# Do not build Linux configs
+-Darwin,sim:linuxi2c
+-Darwin,sim:linuxspi
+
 # macOS doesn't have X11
 -Darwin,sim:lvgl
 -Darwin,sim:nsh2