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:52 UTC

[incubator-nuttx] branch master updated (2d4906a -> c52a099)

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

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


    from 2d4906a  Small clarification in the making-changes.rst documentation.
     new c82a676  sim: fix sim runtime err under sanitize check mode.
     new 3e967f7  sim: Split SIM_SANITIZE to SIM_ASAN and SIM_UBSAN
     new c52a099  sim: Add more config to asan/kasan for testing

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 arch/sim/Kconfig                           |  9 ++++++++-
 arch/sim/src/sim/up_initialstate.c         |  6 ++++++
 boards/sim/sim/sim/configs/asan/defconfig  | 15 ++++++++++++++-
 boards/sim/sim/sim/configs/kasan/defconfig | 11 +++++++++++
 boards/sim/sim/sim/scripts/Make.defs       | 20 +++++++++++++++-----
 5 files changed, 54 insertions(+), 7 deletions(-)

[incubator-nuttx] 03/03: sim: Add more config to asan/kasan for testing

Posted by ag...@apache.org.
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 c52a0991977833553408ee3c09cddb6bc85125ff
Author: Xiang Xiao <xi...@xiaomi.com>
AuthorDate: Sat Oct 30 22:41:59 2021 +0800

    sim: Add more config to asan/kasan for testing
    
    Signed-off-by: Xiang Xiao <xi...@xiaomi.com>
---
 boards/sim/sim/sim/configs/asan/defconfig  | 12 ++++++++++++
 boards/sim/sim/sim/configs/kasan/defconfig | 11 +++++++++++
 2 files changed, 23 insertions(+)

diff --git a/boards/sim/sim/sim/configs/asan/defconfig b/boards/sim/sim/sim/configs/asan/defconfig
index 356ea01..7220986 100644
--- a/boards/sim/sim/sim/configs/asan/defconfig
+++ b/boards/sim/sim/sim/configs/asan/defconfig
@@ -12,22 +12,34 @@ CONFIG_ARCH_CHIP="sim"
 CONFIG_ARCH_SIM=y
 CONFIG_BOARDCTL_POWEROFF=y
 CONFIG_BUILTIN=y
+CONFIG_CANCELLATION_POINTS=y
+CONFIG_DEBUG_FEATURES=y
 CONFIG_DEBUG_SYMBOLS=y
 CONFIG_DEV_LOOP=y
 CONFIG_DEV_ZERO=y
 CONFIG_EXAMPLES_HELLO=y
+CONFIG_FS_AIO=y
 CONFIG_FS_BINFS=y
+CONFIG_FS_NAMED_SEMAPHORES=y
 CONFIG_FS_PROCFS=y
 CONFIG_MM_CUSTOMIZE_MANAGER=y
 CONFIG_NSH_ARCHINIT=y
 CONFIG_NSH_BUILTIN_APPS=y
 CONFIG_NSH_READLINE=y
+CONFIG_PTHREAD_CLEANUP=y
+CONFIG_PTHREAD_MUTEX_TYPES=y
+CONFIG_PTHREAD_MUTEX_UNSAFE=y
 CONFIG_READLINE_TABCOMPLETION=y
+CONFIG_RR_INTERVAL=10
 CONFIG_SCHED_HAVE_PARENT=y
+CONFIG_SCHED_LPWORK=y
 CONFIG_SCHED_ONEXIT=y
 CONFIG_SCHED_WAITPID=y
+CONFIG_SIG_DEFAULT=y
+CONFIG_SIG_EVTHREAD=y
 CONFIG_SIM_ASAN=y
 CONFIG_SIM_UBSAN=y
 CONFIG_SYSTEM_NSH=y
 CONFIG_TESTING_OSTEST=y
+CONFIG_TESTING_OSTEST_AIO=y
 CONFIG_USER_ENTRYPOINT="nsh_main"
diff --git a/boards/sim/sim/sim/configs/kasan/defconfig b/boards/sim/sim/sim/configs/kasan/defconfig
index 1a98918..2a5d9b9b 100644
--- a/boards/sim/sim/sim/configs/kasan/defconfig
+++ b/boards/sim/sim/sim/configs/kasan/defconfig
@@ -12,21 +12,32 @@ CONFIG_ARCH_CHIP="sim"
 CONFIG_ARCH_SIM=y
 CONFIG_BOARDCTL_POWEROFF=y
 CONFIG_BUILTIN=y
+CONFIG_CANCELLATION_POINTS=y
 CONFIG_DEBUG_FEATURES=y
 CONFIG_DEBUG_SYMBOLS=y
 CONFIG_DEV_LOOP=y
 CONFIG_DEV_ZERO=y
 CONFIG_EXAMPLES_HELLO=y
+CONFIG_FS_AIO=y
 CONFIG_FS_BINFS=y
+CONFIG_FS_NAMED_SEMAPHORES=y
 CONFIG_FS_PROCFS=y
 CONFIG_MM_KASAN=y
 CONFIG_NSH_ARCHINIT=y
 CONFIG_NSH_BUILTIN_APPS=y
 CONFIG_NSH_READLINE=y
+CONFIG_PTHREAD_CLEANUP=y
+CONFIG_PTHREAD_MUTEX_TYPES=y
+CONFIG_PTHREAD_MUTEX_UNSAFE=y
 CONFIG_READLINE_TABCOMPLETION=y
+CONFIG_RR_INTERVAL=10
 CONFIG_SCHED_HAVE_PARENT=y
+CONFIG_SCHED_LPWORK=y
 CONFIG_SCHED_ONEXIT=y
 CONFIG_SCHED_WAITPID=y
+CONFIG_SIG_DEFAULT=y
+CONFIG_SIG_EVTHREAD=y
 CONFIG_SYSTEM_NSH=y
 CONFIG_TESTING_OSTEST=y
+CONFIG_TESTING_OSTEST_AIO=y
 CONFIG_USER_ENTRYPOINT="nsh_main"

[incubator-nuttx] 02/03: sim: Split SIM_SANITIZE to SIM_ASAN and SIM_UBSAN

Posted by ag...@apache.org.
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

[incubator-nuttx] 01/03: sim: fix sim runtime err under sanitize check mode.

Posted by ag...@apache.org.
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 c82a67663038ca9a1b47d46639995d74f3e5514c
Author: mage1 <ma...@xiaomi.com>
AuthorDate: Wed Mar 17 15:41:18 2021 +0800

    sim: fix sim runtime err under sanitize check mode.
    
    since gcc sanitize can not stub proper code in nuttx kernel code.
---
 arch/sim/src/sim/up_initialstate.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/sim/src/sim/up_initialstate.c b/arch/sim/src/sim/up_initialstate.c
index 1b11ebb..eba0bd1 100644
--- a/arch/sim/src/sim/up_initialstate.c
+++ b/arch/sim/src/sim/up_initialstate.c
@@ -26,6 +26,9 @@
 
 #include <stdint.h>
 #include <string.h>
+#ifdef CONFIG_SIM_ASAN
+#include <sanitizer/asan_interface.h>
+#endif
 
 #include <nuttx/arch.h>
 
@@ -83,4 +86,7 @@ void up_initial_state(struct tcb_s *tcb)
                                      tcb->adj_stack_size -
                                      sizeof(xcpt_reg_t);
   tcb->xcp.regs[JB_PC] = (xcpt_reg_t)tcb->start;
+#ifdef CONFIG_SIM_ASAN
+  __asan_unpoison_memory_region(tcb->stack_alloc_ptr, tcb->adj_stack_size);
+#endif
 }