Em Tue, Sep 21, 2021 at 07:13:21PM -0700, Yonghong Song escreveu: > LLVM has implemented btf_tag attribute ([1]) which intended > to provide a "string" tag for struct/union or its member, var, > a func or its parameter. Such a "string" tag will be encoded > in dwarf. For non-BPF target like x86_64, pahole needs to > convert those dwarf btf_tag annotations to BTF so kernel > can utilize these "string" tags for bpf program verification, etc. > > Patch 1 enhanced dwarf_loader to encode DW_TAG_LLVM_annotation > tags into internal data structure and Patch 2 will encode > such information to BTF with BTF_KIND_TAGs. > > [1] https://reviews.llvm.org/D106614 Applied both locally, now building HEAD llvm/clang to test everything, - Arnaldo > Changelog: > v1 -> v2: > - handle returning error cases for btf_encoder__add_tag(). > > Yonghong Song (2): > dwarf_loader: parse dwarf tag DW_TAG_LLVM_annotation > btf_encoder: generate BTF_KIND_TAG from llvm annotations > > btf_encoder.c | 63 ++++++++++++++++++++++++++++++++++++- > dwarf_loader.c | 85 ++++++++++++++++++++++++++++++++++++++++++++++---- > dwarves.h | 10 ++++++ > pahole.c | 8 +++++ > 4 files changed, 159 insertions(+), 7 deletions(-) > > -- > 2.30.2 -- - Arnaldo