2022-11-21 03:25:36

by Lihua (lihua, ran)

[permalink] [raw]
Subject: [PATCH] test_kprobes: Fix implicit declaration error of test_kprobes

If KPROBES_SANITY_TEST and ARCH_CORRECT_STACKTRACE_ON_KRETPROBE is enabled, but
STACKTRACE is not set. Build failed as below:

lib/test_kprobes.c: In function ‘stacktrace_return_handler’:
lib/test_kprobes.c:228:8: error: implicit declaration of function ‘stack_trace_save’; did you mean ‘stacktrace_driver’? [-Werror=implicit-function-declaration]
ret = stack_trace_save(stack_buf, STACK_BUF_SIZE, 0);
^~~~~~~~~~~~~~~~
stacktrace_driver
cc1: all warnings being treated as errors
scripts/Makefile.build:250: recipe for target 'lib/test_kprobes.o' failed
make[2]: *** [lib/test_kprobes.o] Error 1

To fix this error, Select STACKTRACE if ARCH_CORRECT_STACKTRACE_ON_KRETPROBE is enabled.

Fixes: 1f6d3a8f5e39 ("kprobes: Add a test case for stacktrace from kretprobe handler")
Signed-off-by: Li Hua <[email protected]>
---
lib/Kconfig.debug | 1 +
1 file changed, 1 insertion(+)

diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index c3c0b077ade3..a1005415f0f4 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -2107,6 +2107,7 @@ config KPROBES_SANITY_TEST
depends on DEBUG_KERNEL
depends on KPROBES
depends on KUNIT
+ select STACKTRACE if ARCH_CORRECT_STACKTRACE_ON_KRETPROBE
default KUNIT_ALL_TESTS
help
This option provides for testing basic kprobes functionality on
--
2.17.1



2022-11-22 05:07:29

by Masami Hiramatsu

[permalink] [raw]
Subject: Re: [PATCH] test_kprobes: Fix implicit declaration error of test_kprobes

On Mon, 21 Nov 2022 11:06:20 +0800
Li Hua <[email protected]> wrote:

> If KPROBES_SANITY_TEST and ARCH_CORRECT_STACKTRACE_ON_KRETPROBE is enabled, but
> STACKTRACE is not set. Build failed as below:
>
> lib/test_kprobes.c: In function ‘stacktrace_return_handler’:
> lib/test_kprobes.c:228:8: error: implicit declaration of function ‘stack_trace_save’; did you mean ‘stacktrace_driver’? [-Werror=implicit-function-declaration]
> ret = stack_trace_save(stack_buf, STACK_BUF_SIZE, 0);
> ^~~~~~~~~~~~~~~~
> stacktrace_driver
> cc1: all warnings being treated as errors
> scripts/Makefile.build:250: recipe for target 'lib/test_kprobes.o' failed
> make[2]: *** [lib/test_kprobes.o] Error 1
>
> To fix this error, Select STACKTRACE if ARCH_CORRECT_STACKTRACE_ON_KRETPROBE is enabled.

Good catch!

Acked-by: Masami Hiramatsu (Google) <[email protected]>

Thanks!

>
> Fixes: 1f6d3a8f5e39 ("kprobes: Add a test case for stacktrace from kretprobe handler")
> Signed-off-by: Li Hua <[email protected]>
> ---
> lib/Kconfig.debug | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
> index c3c0b077ade3..a1005415f0f4 100644
> --- a/lib/Kconfig.debug
> +++ b/lib/Kconfig.debug
> @@ -2107,6 +2107,7 @@ config KPROBES_SANITY_TEST
> depends on DEBUG_KERNEL
> depends on KPROBES
> depends on KUNIT
> + select STACKTRACE if ARCH_CORRECT_STACKTRACE_ON_KRETPROBE
> default KUNIT_ALL_TESTS
> help
> This option provides for testing basic kprobes functionality on
> --
> 2.17.1
>


--
Masami Hiramatsu (Google) <[email protected]>