]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
riscv: Allow building with kcov coverage
authorTobias Klauser <tklauser@distanz.ch>
Fri, 26 Jun 2020 12:40:56 +0000 (14:40 +0200)
committerPalmer Dabbelt <palmerdabbelt@google.com>
Thu, 30 Jul 2020 18:37:35 +0000 (11:37 -0700)
Add ARCH_HAS_KCOV and HAVE_GCC_PLUGINS to the riscv Kconfig.
Also disable instrumentation of some early boot code and vdso.

Boot-tested on QEMU's riscv64 virt machine.

Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Acked-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
arch/riscv/Kconfig
arch/riscv/boot/Makefile
arch/riscv/kernel/vdso/Makefile
arch/riscv/mm/Makefile

index b7efe87329dd57fe8fde3652082d91a0de01d63f..0b40449a2eae034a9045513f900edf154e8ca13b 100644 (file)
@@ -19,6 +19,7 @@ config RISCV
        select ARCH_HAS_DEBUG_WX
        select ARCH_HAS_GCOV_PROFILE_ALL
        select ARCH_HAS_GIGANTIC_PAGE
+       select ARCH_HAS_KCOV
        select ARCH_HAS_MMIOWB
        select ARCH_HAS_PTE_SPECIAL
        select ARCH_HAS_SET_DIRECT_MAP
@@ -58,6 +59,7 @@ config RISCV
        select HAVE_DMA_CONTIGUOUS if MMU
        select HAVE_EBPF_JIT if MMU
        select HAVE_FUTEX_CMPXCHG if FUTEX
+       select HAVE_GCC_PLUGINS
        select HAVE_GENERIC_VDSO if MMU && 64BIT
        select HAVE_PCI
        select HAVE_PERF_EVENTS
index 3530c59b3ea7372102a5516dfd6c0b63efbe1d1d..c59fca695f9dd7a67700cc80abfbf37787b839d3 100644 (file)
@@ -14,6 +14,8 @@
 # Based on the ia64 and arm64 boot/Makefile.
 #
 
+KCOV_INSTRUMENT := n
+
 OBJCOPYFLAGS_Image :=-O binary -R .note -R .note.gnu.build-id -R .comment -S
 
 targets := Image loader
index e4c7c2c8a02fa22d0a6b9d6864fb20fb33bd2191..c8c9e40023c68122b3ffb75cff0ad34ff2031bce 100644 (file)
@@ -32,6 +32,7 @@ CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE) -Os
 
 # Disable gcov profiling for VDSO code
 GCOV_PROFILE := n
+KCOV_INSTRUMENT := n
 
 # Force dependency
 $(obj)/vdso.o: $(obj)/vdso.so
index 363ef01c30b1c4d4642d2f8985471e19c0c21a54..c0185e556ca51b944e276267352119809ac1290e 100644 (file)
@@ -5,6 +5,8 @@ ifdef CONFIG_FTRACE
 CFLAGS_REMOVE_init.o = -pg
 endif
 
+KCOV_INSTRUMENT_init.o := n
+
 obj-y += init.o
 obj-y += extable.o
 obj-$(CONFIG_MMU) += fault.o pageattr.o