Em Fri, Mar 12, 2021 at 01:08:08AM +0100, Ilya Leoshkevich escreveu: > By default, pahole makes use only of BTF features introduced with > kernel v5.2. Features that are added later need to be turned on with > explicit feature flags, such as --btf_gen_floats. According to [1], > this will hinder the people who generate BTF for kernels externally > (e.g. for old kernels to support BPF CO-RE). > > Introduce --btf_gen_all that allows using all BTF features supported > by pahole. > > [1] https://lore.kernel.org/dwarves/CAEf4Bzbyugfb2RkBkRuxNGKwSk40Tbq4zAvhQT8W=fVMYWuaxA@xxxxxxxxxxxxxx/ Applied locally, testing ongoing. Also added this: Suggested-by: Andrii Nakryiko <andrii@xxxxxxxxxx> - Arnaldo > Signed-off-by: Ilya Leoshkevich <iii@xxxxxxxxxxxxx> > --- > man-pages/pahole.1 | 4 ++++ > pahole.c | 8 ++++++++ > 2 files changed, 12 insertions(+) > > diff --git a/man-pages/pahole.1 b/man-pages/pahole.1 > index e292b2c..cbbefbf 100644 > --- a/man-pages/pahole.1 > +++ b/man-pages/pahole.1 > @@ -204,6 +204,10 @@ to "/sys/kernel/btf/vmlinux". > Allow producing BTF_KIND_FLOAT entries in systems where the vmlinux DWARF > information has float types. > > +.TP > +.B \-\-btf_gen_all > +Allow using all the BTF features supported by pahole. > + > .TP > .B \-l, \-\-show_first_biggest_size_base_type_member > Show first biggest size base_type member. > diff --git a/pahole.c b/pahole.c > index c8d38f5..df6aa83 100644 > --- a/pahole.c > +++ b/pahole.c > @@ -826,6 +826,7 @@ ARGP_PROGRAM_VERSION_HOOK_DEF = dwarves_print_version; > #define ARGP_numeric_version 320 > #define ARGP_btf_base 321 > #define ARGP_btf_gen_floats 322 > +#define ARGP_btf_gen_all 323 > > static const struct argp_option pahole__options[] = { > { > @@ -1125,6 +1126,11 @@ static const struct argp_option pahole__options[] = { > .key = ARGP_btf_gen_floats, > .doc = "Allow producing BTF_KIND_FLOAT entries." > }, > + { > + .name = "btf_gen_all", > + .key = ARGP_btf_gen_all, > + .doc = "Allow using all the BTF features supported by pahole." > + }, > { > .name = "structs", > .key = ARGP_just_structs, > @@ -1262,6 +1268,8 @@ static error_t pahole__options_parser(int key, char *arg, > print_numeric_version = true; break; > case ARGP_btf_gen_floats: > btf_gen_floats = true; break; > + case ARGP_btf_gen_all: > + btf_gen_floats = true; break; > default: > return ARGP_ERR_UNKNOWN; > } > -- > 2.29.2 > -- - Arnaldo