Add support for enum64. For 64-bit enumerator value, previously, the value is truncated into 32bit, e.g., for the following enum in linux uapi bpf.h, enum { BPF_F_INDEX_MASK = 0xffffffffULL, BPF_F_CURRENT_CPU = BPF_F_INDEX_MASK, /* BPF_FUNC_perf_event_output for sk_buff input context. */ BPF_F_CTXLEN_MASK = (0xfffffULL << 32), }; BPF_F_CTXLEN_MASK will be encoded with 0 with BTF_KIND_ENUM after pahole dwarf-to-btf conversion. With this patch, the BPF_F_CTXLEN_MASK will be encoded properly with BTF_KIND_ENUM64. This patch is on top of tmp.master since tmp.master has not been sync'ed with master branch yet. Changelogs: v2 -> v3: - pass struct type/conf_load pointers to btf_encoder__add_enum[_value] to make code easier to understand. v1 -> v2: - Add flag --skip_encoding_btf_enum64 to disable newly-added functionality. Yonghong Song (2): libbpf: Sync with latest libbpf repo btf: Support BTF_KIND_ENUM64 btf_encoder.c | 67 +++++++++++++++++++++++++++++++++++------------ btf_encoder.h | 2 +- dwarf_loader.c | 12 +++++++++ dwarves.h | 4 ++- dwarves_fprintf.c | 6 ++++- lib/bpf | 2 +- pahole.c | 10 ++++++- 7 files changed, 81 insertions(+), 22 deletions(-) -- 2.30.2