From 3e967f784ecca96f1c7688ecd6963608dc2f770c Mon Sep 17 00:00:00 2001 From: Xiang Xiao Date: Sat, 30 Oct 2021 23:45:34 +0800 Subject: [PATCH] sim: Split SIM_SANITIZE to SIM_ASAN and SIM_UBSAN align the naming style with MM_ASAN Signed-off-by: Xiang Xiao --- 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 ea2d9629b67..455abd4de3b 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 f656a298656..356ea01d603 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 119d6a104ed..586ed241f16 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