@@ -75,6 +75,7 @@ struct btf_encoder {
verbose,
force,
gen_floats,
+ tag_kfuncs,
is_rel;
uint32_t array_index_id;
struct {
@@ -1659,6 +1660,7 @@ struct btf_encoder *btf_encoder__new(struct cu *cu, const char *detached_filenam
encoder->force = conf_load->btf_encode_force;
encoder->gen_floats = conf_load->btf_gen_floats;
encoder->skip_encoding_vars = conf_load->skip_encoding_btf_vars;
+ encoder->tag_kfuncs = conf_load->btf_decl_tag_kfuncs;
encoder->verbose = verbose;
encoder->has_index_type = false;
encoder->need_index_type = false;
@@ -87,6 +87,7 @@ struct conf_load {
bool skip_encoding_btf_vars;
bool btf_gen_floats;
bool btf_encode_force;
+ bool btf_decl_tag_kfuncs;
uint8_t hashtable_bits;
uint8_t max_hashtable_bits;
uint16_t kabi_prefix_len;
@@ -308,6 +308,7 @@ Encode BTF using the specified feature list, or specify 'all' for all features s
in some CUs and not others, or when the same
function name has inconsistent BTF descriptions
in different CUs.
+ decl_tag_kfuncs Inject a BTF_KIND_DECL_TAG for each discovered kfunc.
.fi
So for example, specifying \-\-btf_encode=var,enum64 will result in a BTF encoding that (as well as encoding basic BTF information) will contain variables and enum64 values.
@@ -1281,6 +1281,7 @@ struct btf_feature {
BTF_FEATURE(enum64, skip_encoding_btf_enum64, true),
BTF_FEATURE(optimized_func, btf_gen_optimized, false),
BTF_FEATURE(consistent_func, skip_encoding_btf_inconsistent_proto, false),
+ BTF_FEATURE(decl_tag_kfuncs, btf_decl_tag_kfuncs, false),
};
#define BTF_MAX_FEATURE_STR 1024