[PATCH v4 bpf] kbuild: fix dependencies for DEBUG_INFO_BTF

From: Slava Bacherikov
Date: Thu Apr 02 2020 - 11:34:42 EST


Currently turning on DEBUG_INFO_SPLIT when DEBUG_INFO_BTF is also
enabled will produce invalid btf file, since gen_btf function in
link-vmlinux.sh script doesn't handle *.dwo files.

Enabling DEBUG_INFO_REDUCED will also produce invalid btf file, and
using GCC_PLUGIN_RANDSTRUCT with BTF makes no sense.

Signed-off-by: Slava Bacherikov <slava@xxxxxxxxxxxx>
Reported-by: Jann Horn <jannh@xxxxxxxxxx>
Reported-by: Liu Yiding <liuyd.fnst@xxxxxxxxxxxxxx>
Acked-by: KP Singh <kpsingh@xxxxxxxxxx>
Acked-by: Andrii Nakryiko <andriin@xxxxxx>
Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx>
Fixes: e83b9f55448a ("kbuild: add ability to generate BTF type info for vmlinux")
---
lib/Kconfig.debug | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index f61d834e02fe..b94227be2d62 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -222,7 +222,9 @@ config DEBUG_INFO_DWARF4

config DEBUG_INFO_BTF
bool "Generate BTF typeinfo"
- depends on DEBUG_INFO
+ depends on DEBUG_INFO || COMPILE_TEST
+ depends on !DEBUG_INFO_SPLIT && !DEBUG_INFO_REDUCED
+ depends on !GCC_PLUGIN_RANDSTRUCT || COMPILE_TEST
help
Generate deduplicated BTF type information from DWARF debug info.
Turning this on expects presence of pahole tool, which will convert