You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by ag...@apache.org on 2021/11/02 20:02:54 UTC
[incubator-nuttx] 02/03: sim: Split SIM_SANITIZE to SIM_ASAN and
SIM_UBSAN
This is an automated email from the ASF dual-hosted git repository.
aguettouche pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
commit 3e967f784ecca96f1c7688ecd6963608dc2f770c
Author: Xiang Xiao <xi...@xiaomi.com>
AuthorDate: Sat Oct 30 23:45:34 2021 +0800
sim: Split SIM_SANITIZE to SIM_ASAN and SIM_UBSAN
align the naming style with MM_ASAN
Signed-off-by: Xiang Xiao <xi...@xiaomi.com>
---
arch/sim/Kconfig | 9 ++++++++-
boards/sim/sim/sim/configs/asan/defconfig | 3 ++-
boards/sim/sim/sim/scripts/Make.defs | 20 +++++++++++++++-----
3 files changed, 25 insertions(+), 7 deletions(-)
diff --git a/arch/sim/Kconfig b/arch/sim/Kconfig
index ea2d962..455abd4 100644
--- a/arch/sim/Kconfig
+++ b/arch/sim/Kconfig
@@ -58,7 +58,7 @@ config SIM_CYGWIN_DECORATED
run: It will crash early, probably in some function due to the failure to
allocate memory.
-config SIM_SANITIZE
+config SIM_ASAN
bool "Address Sanitizer"
default n
depends on MM_CUSTOMIZE_MANAGER
@@ -66,6 +66,13 @@ config SIM_SANITIZE
AddressSanitizer (ASan) is a fast compiler-based tool for detecting memory
bugs in native code.
+config SIM_UBSAN
+ bool "Undefined Behaviour Sanitizer"
+ default n
+ ---help---
+ Compile-time instrumentation is used to detect various undefined behaviours
+ at runtime.
+
choice
prompt "X64_64 ABI"
default SIM_X8664_SYSTEMV if HOST_LINUX
diff --git a/boards/sim/sim/sim/configs/asan/defconfig b/boards/sim/sim/sim/configs/asan/defconfig
index f656a29..356ea01 100644
--- a/boards/sim/sim/sim/configs/asan/defconfig
+++ b/boards/sim/sim/sim/configs/asan/defconfig
@@ -26,7 +26,8 @@ CONFIG_READLINE_TABCOMPLETION=y
CONFIG_SCHED_HAVE_PARENT=y
CONFIG_SCHED_ONEXIT=y
CONFIG_SCHED_WAITPID=y
-CONFIG_SIM_SANITIZE=y
+CONFIG_SIM_ASAN=y
+CONFIG_SIM_UBSAN=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 119d6a1..586ed24 100644
--- a/boards/sim/sim/sim/scripts/Make.defs
+++ b/boards/sim/sim/sim/scripts/Make.defs
@@ -129,14 +129,19 @@ 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
+ifeq ($(CONFIG_SIM_ASAN),y)
+ CFLAGS += -fsanitize=address -fno-omit-frame-pointer
+ CXXFLAGS += -fsanitize=address -fno-omit-frame-pointer
else ifeq ($(CONFIG_MM_KASAN),y)
CFLAGS += -fsanitize=kernel-address
CXXFLAGS += -fsanitize=kernel-address
endif
+ifeq ($(CONFIG_SIM_UBSAN),y)
+ CFLAGS += -fsanitize=undefined -fno-omit-frame-pointer
+ CXXFLAGS += -fsanitize=undefined -fno-omit-frame-pointer
+endif
+
# Loadable module definitions
CMODULEFLAGS = $(CFLAGS)
@@ -200,11 +205,16 @@ ifeq ($(CONFIG_SIM_M32),y)
HOSTLDFLAGS += -m32
endif
-ifeq ($(CONFIG_SIM_SANITIZE),y)
- CCLINKFLAGS += -fsanitize=address -fsanitize=undefined -fno-omit-frame-pointer
+ifeq ($(CONFIG_SIM_ASAN),y)
+ CCLINKFLAGS += -fsanitize=address -fno-omit-frame-pointer
else ifeq ($(CONFIG_MM_KASAN),y)
CCLINKFLAGS += -fsanitize=kernel-address
endif
+ifeq ($(CONFIG_SIM_UBSAN),y)
+ CCLINKFLAGS += -fsanitize=undefined -fno-omit-frame-pointer
+endif
+
+
HOSTCFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) \
$(ARCHCPUFLAGS) $(HOSTINCLUDES) $(EXTRAFLAGS) -D__SIM__ -pipe