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/ 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