v1.16 changes: BTF encoder: Andrii Nakryiko : - Preserve and encode exported functions as BTF_KIND_FUNC. Add encoding of DWARF's DW_TAG_subprogram_type into BTF's BTF_KIND_FUNC (plus corresponding BTF_KIND_FUNC_PROTO). Only exported functions are converted for now. This allows to capture all the exported kernel functions, same subset that's exposed through /proc/kallsyms. BTF loader: Arnaldo Carvalho de Melo - Add support for BTF_KIND_FUNC Some changes to the fprintf routines were needed, as BTF has as the function type just a BTF_KIND_FUNC_PROTO, while DWARF has as the type for a function its return value type. With a function->btf flag this was overcome and all the other goodies in pfunct are present. Pretty printer: Arnaldo Carvalho de Melo: - Account inline type __aligned__ member types for spacing: union { refcount_t rcu_users; /* 2568 4 */ struct callback_head rcu __attribute__((__aligned__(8))); /* 2568 16 */ - } __attribute__((__aligned__(8))); /* 2568 16 */ + } __attribute__((__aligned__(8))); /* 2568 16 */ struct pipe_inode_info * splice_pipe; /* 2584 8 */ - Fix alignment of class members that are structs/enums/unions E.g. look at that 'completion' member in this struct: struct cpu_stop_done { atomic_t nr_todo; /* 0 4 */ int ret; /* 4 4 */ - struct completion completion; /* 8 32 */ + struct completion completion; /* 8 32 */ /* size: 40, cachelines: 1, members: 3 */ /* last cacheline: 40 bytes */ - Fixup handling classes with no members, solving a NULL deref. Gareth Lloyd : - Avoid infinite loop trying to determine type with static data member of its own type. RPM spec file. Jiri Olsa Add dwarves dependency on libdwarves1. pfunct: Arnaldo Carvalho de Melo - type->type == 0 is void, fix --compile for that We were using the fall back for that, i.e. 'return 0;' was being emitted for a function returning void, noticed with using BTF as the format. pdwtags: - Print DW_TAG_subroutine_type as well So that we can see at least via pdwtags those tags, be it from DWARF of BTF. core: Arnaldo Carvalho de Melo Fix ptr_table__add_with_id() handling of pt->nr_entries, covering how BTF variables IDs are encoded. pglobal: Arnaldo Carvalho de Melo : - Allow passing the format path specifier, to use with BTF I.e. now we can, just like with pahole, use: pglobal -F btf --variable foo.o To get the global variables. Tree wide: Arnaldo Carvalho de Melo : - Fixup issues pointed out by various coverity reports. Signed-off-by: Arnaldo Carvalho de Melo