You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by xi...@apache.org on 2020/07/22 17:01:49 UTC
[incubator-nuttx] 02/03: Syscall instrumentation build system
support for Arm and RISC-V
This is an automated email from the ASF dual-hosted git repository.
xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
commit 02718f08278cdf0121a38ce4f9c59ca84e9b970a
Author: Nakamura, Yuuichi <Yu...@sony.com>
AuthorDate: Wed Jul 22 22:21:42 2020 +0900
Syscall instrumentation build system support for Arm and RISC-V
---
arch/Kconfig | 2 ++
arch/arm/src/Makefile | 8 +++++++-
arch/risc-v/src/Makefile | 8 +++++++-
sched/Kconfig | 2 +-
4 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/arch/Kconfig b/arch/Kconfig
index 21e3f5d..d49d844 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -14,6 +14,7 @@ config ARCH_ARM
select ARCH_HAVE_STACKCHECK
select ARCH_HAVE_CUSTOMOPT
select ARCH_HAVE_STDARG_H
+ select ARCH_HAVE_SYSCALL_HOOKS
---help---
The ARM architectures
@@ -60,6 +61,7 @@ config ARCH_RISCV
select ARCH_HAVE_STACKCHECK
select ARCH_HAVE_CUSTOMOPT
select ARCH_HAVE_STDARG_H
+ select ARCH_HAVE_SYSCALL_HOOKS
---help---
RISC-V 32 and 64-bit RV32 / RV64 architectures.
diff --git a/arch/arm/src/Makefile b/arch/arm/src/Makefile
index 98b85fc..32507ba 100644
--- a/arch/arm/src/Makefile
+++ b/arch/arm/src/Makefile
@@ -69,6 +69,12 @@ else
NUTTX = "$(TOPDIR)$(DELIM)nuttx$(EXEEXT)"
endif
+# Additional rules for system call wrapper
+
+ifeq ($(CONFIG_SCHED_INSTRUMENTATION_SYSCALL),y)
+ EXTRALINKCMDS += @$(TOPDIR)/syscall/syscall_wraps.ldcmd
+endif
+
# The "head" object
HEAD_OBJ = $(HEAD_ASRC:.S=$(OBJEXT))
@@ -99,7 +105,7 @@ UOBJS = $(UAOBJS) $(UCOBJS)
KBIN = libkarch$(LIBEXT)
BIN = libarch$(LIBEXT)
-LDFLAGS += $(ARCHSCRIPT)
+LDFLAGS += $(ARCHSCRIPT) $(EXTRALINKCMDS)
# Override in Make.defs if linker is not 'ld'
diff --git a/arch/risc-v/src/Makefile b/arch/risc-v/src/Makefile
index 0bab782..eba6332 100644
--- a/arch/risc-v/src/Makefile
+++ b/arch/risc-v/src/Makefile
@@ -66,6 +66,12 @@ else
NUTTX = "$(TOPDIR)$(DELIM)nuttx$(EXEEXT)"
endif
+# Additional rules for system call wrapper
+
+ifeq ($(CONFIG_SCHED_INSTRUMENTATION_SYSCALL),y)
+ EXTRALINKCMDS += @$(TOPDIR)/syscall/syscall_wraps.ldcmd
+endif
+
# The "head" object
HEAD_OBJ = $(HEAD_ASRC:.S=$(OBJEXT))
@@ -96,7 +102,7 @@ UOBJS = $(UAOBJS) $(UCOBJS)
KBIN = libkarch$(LIBEXT)
BIN = libarch$(LIBEXT)
-LDFLAGS += $(ARCHSCRIPT)
+LDFLAGS += $(ARCHSCRIPT) $(EXTRALINKCMDS)
LDSTARTGROUP ?= --start-group
LDENDGROUP ?= --end-group
diff --git a/sched/Kconfig b/sched/Kconfig
index 460b58a..f57bb4a 100644
--- a/sched/Kconfig
+++ b/sched/Kconfig
@@ -975,7 +975,7 @@ config SCHED_INSTRUMENTATION_SPINLOCKS
config SCHED_INSTRUMENTATION_SYSCALL
bool "System call monitor hooks"
default n
- depends on LIB_SYSCALL && ARCH_HAVE_SYSCALL_HOOKS
+ depends on ARCH_HAVE_SYSCALL_HOOKS
---help---
Enables additional hooks for entry and exit from system call.
Board-specific logic must provide this additional logic.