2019-12-10 17:51:44

by Denis Efremov (Oracle)

[permalink] [raw]
Subject: [PATCH] MIPS: disable kcov instrumentation in compressed dir

This patch fixes the compilation with CONFIG_KCOV enabled.
Otherwise linking fails with:
ld: arch/mips/boot/compressed/piggy.o: in function `main':
dummy.c:(.text.startup+0x8): undefined reference to `__sanitizer_cov_...'
make[1]: *** [arch/mips/boot/compressed/Makefile:101: vmlinuz] Error 1

Signed-off-by: Denis Efremov <[email protected]>
---
arch/mips/boot/compressed/Makefile | 3 +++
1 file changed, 3 insertions(+)

diff --git a/arch/mips/boot/compressed/Makefile b/arch/mips/boot/compressed/Makefile
index 172801ed35b8..d859f079b771 100644
--- a/arch/mips/boot/compressed/Makefile
+++ b/arch/mips/boot/compressed/Makefile
@@ -29,6 +29,9 @@ KBUILD_AFLAGS := $(KBUILD_AFLAGS) -D__ASSEMBLY__ \
-DBOOT_HEAP_SIZE=$(BOOT_HEAP_SIZE) \
-DKERNEL_ENTRY=$(VMLINUX_ENTRY_ADDRESS)

+# Prevents link failures: __sanitizer_cov_trace_pc() is not linked in.
+KCOV_INSTRUMENT := n
+
# decompressor objects (linked with vmlinuz)
vmlinuzobjs-y := $(obj)/head.o $(obj)/decompress.o $(obj)/string.o

--
2.20.1


2019-12-10 19:00:05

by Paul Burton

[permalink] [raw]
Subject: Re: [PATCH] MIPS: disable kcov instrumentation in compressed dir

Hi Denis,

On Tue, Dec 10, 2019 at 08:50:02PM +0300, Denis Efremov wrote:
> This patch fixes the compilation with CONFIG_KCOV enabled.
> Otherwise linking fails with:
> ld: arch/mips/boot/compressed/piggy.o: in function `main':
> dummy.c:(.text.startup+0x8): undefined reference to `__sanitizer_cov_...'
> make[1]: *** [arch/mips/boot/compressed/Makefile:101: vmlinuz] Error 1
>
> Signed-off-by: Denis Efremov <[email protected]>
> ---
> arch/mips/boot/compressed/Makefile | 3 +++
> 1 file changed, 3 insertions(+)

This one's identical to this patch which was merged to mips-fixes
yesterday:

https://git.kernel.org/mips/c/3f0a2abff9aa

Thanks,
Paul

> diff --git a/arch/mips/boot/compressed/Makefile b/arch/mips/boot/compressed/Makefile
> index 172801ed35b8..d859f079b771 100644
> --- a/arch/mips/boot/compressed/Makefile
> +++ b/arch/mips/boot/compressed/Makefile
> @@ -29,6 +29,9 @@ KBUILD_AFLAGS := $(KBUILD_AFLAGS) -D__ASSEMBLY__ \
> -DBOOT_HEAP_SIZE=$(BOOT_HEAP_SIZE) \
> -DKERNEL_ENTRY=$(VMLINUX_ENTRY_ADDRESS)
>
> +# Prevents link failures: __sanitizer_cov_trace_pc() is not linked in.
> +KCOV_INSTRUMENT := n
> +
> # decompressor objects (linked with vmlinuz)
> vmlinuzobjs-y := $(obj)/head.o $(obj)/decompress.o $(obj)/string.o
>
> --
> 2.20.1
>