btf_type_tag is a new llvm type attribute which is used similar to kernel __user/__rcu attributes. The format of btf_type_tag looks like __attribute__((btf_type_tag("tag1"))) For the case where the attribute applied to a pointee like #define __tag1 __attribute__((btf_type_tag("tag1"))) #define __tag2 __attribute__((btf_type_tag("tag2"))) int __tag1 * __tag1 __tag2 *g; the information will be encoded in dwarf. In BTF, the attribute is encoded as a new kind BTF_KIND_TYPE_TAG and latest bpf-next supports it. The patch added support in pahole, specifically converts llvm dwarf btf_type_tag attributes to BTF types. Please see individual patches for details. Yonghong Song (4): libbpf: sync with latest libbpf repo dutil: move DW_TAG_LLVM_annotation definition to dutil.h dwarf_loader: support btf_type_tag attribute btf_encoder: support btf_type_tag attribute btf_encoder.c | 7 +++ dutil.h | 4 ++ dwarf_loader.c | 120 ++++++++++++++++++++++++++++++++++++++++++++++--- dwarves.h | 38 +++++++++++++++- lib/bpf | 2 +- pahole.c | 8 ++++ 6 files changed, 170 insertions(+), 9 deletions(-) -- 2.30.2