2020-03-31 16:57:34

by Slava Bacherikov

[permalink] [raw]
Subject: [PATCH] kbuild: disable DEBUG_INFO_SPLIT when BTF is on

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.

Signed-off-by: Slava Bacherikov <[email protected]>
---
lib/Kconfig.debug | 1 +
1 file changed, 1 insertion(+)

diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index f61d834e02fe..a9429ef5eec8 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -223,6 +223,7 @@ config DEBUG_INFO_DWARF4
config DEBUG_INFO_BTF
bool "Generate BTF typeinfo"
depends on DEBUG_INFO
+ depends on !DEBUG_INFO_SPLIT
help
Generate deduplicated BTF type information from DWARF debug info.
Turning this on expects presence of pahole tool, which will convert
--
2.24.1


2020-03-31 19:46:47

by Andrii Nakryiko

[permalink] [raw]
Subject: Re: [PATCH] kbuild: disable DEBUG_INFO_SPLIT when BTF is on

On Tue, Mar 31, 2020 at 9:57 AM Slava Bacherikov <[email protected]> wrote:
>
> 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.
>
> Signed-off-by: Slava Bacherikov <[email protected]>
> ---
> lib/Kconfig.debug | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
> index f61d834e02fe..a9429ef5eec8 100644
> --- a/lib/Kconfig.debug
> +++ b/lib/Kconfig.debug
> @@ -223,6 +223,7 @@ config DEBUG_INFO_DWARF4
> config DEBUG_INFO_BTF
> bool "Generate BTF typeinfo"
> depends on DEBUG_INFO
> + depends on !DEBUG_INFO_SPLIT

Thanks for following up! This looks good, but I think there are more
DWARF-related configs that should be banned. See [0] and [1]. If you
don't mind, let's use your patch to disable all of them in one go. So
can you please update and disable DEBUG_INFO_REDUCED and
GCC_PLUGIN_RANDSTRUCT? Thanks!

[0] https://lore.kernel.org/bpf/202003311110.2B08091E@keescook
[1] https://lore.kernel.org/bpf/[email protected]


> help
> Generate deduplicated BTF type information from DWARF debug info.
> Turning this on expects presence of pahole tool, which will convert
> --
> 2.24.1
>

2020-03-31 19:53:34

by Andrii Nakryiko

[permalink] [raw]
Subject: Re: [PATCH] kbuild: disable DEBUG_INFO_SPLIT when BTF is on

On Tue, Mar 31, 2020 at 12:45 PM Andrii Nakryiko
<[email protected]> wrote:
>
> On Tue, Mar 31, 2020 at 9:57 AM Slava Bacherikov <[email protected]> wrote:
> >
> > 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.
> >
> > Signed-off-by: Slava Bacherikov <[email protected]>
> > ---
> > lib/Kconfig.debug | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
> > index f61d834e02fe..a9429ef5eec8 100644
> > --- a/lib/Kconfig.debug
> > +++ b/lib/Kconfig.debug
> > @@ -223,6 +223,7 @@ config DEBUG_INFO_DWARF4
> > config DEBUG_INFO_BTF
> > bool "Generate BTF typeinfo"
> > depends on DEBUG_INFO
> > + depends on !DEBUG_INFO_SPLIT
>
> Thanks for following up! This looks good, but I think there are more
> DWARF-related configs that should be banned. See [0] and [1]. If you
> don't mind, let's use your patch to disable all of them in one go. So
> can you please update and disable DEBUG_INFO_REDUCED and
> GCC_PLUGIN_RANDSTRUCT? Thanks!
>
> [0] https://lore.kernel.org/bpf/202003311110.2B08091E@keescook
> [1] https://lore.kernel.org/bpf/[email protected]
>

I guess at this point it should go against bpf tree, so please update
header to [PATCH v2 bpf]. Please also add Reported-by and Fixes tag:

Reported-by: Jann Horn <[email protected]>
Reported-by: Liu Yiding <[email protected]>
Fixes: e83b9f55448a ("kbuild: add ability to generate BTF type info
for vmlinux")

Thanks!

>
> > help
> > Generate deduplicated BTF type information from DWARF debug info.
> > Turning this on expects presence of pahole tool, which will convert
> > --
> > 2.24.1
> >