From c2b7b8c20877d267159ace36119f6340b9d12823 Mon Sep 17 00:00:00 2001 From: Arnaldo Carvalho de Melo Date: Wed, 8 Dec 2021 09:19:32 -0300 Subject: [PATCH] pahole: Prep 1.23 Signed-off-by: Arnaldo Carvalho de Melo --- CMakeLists.txt | 4 +-- MANIFEST | 1 + NEWS | 41 +++++++++++++++++++++++++++++++ changes-v1.23 | 56 ++++++++++++++++++++++++++++++++++++++++++ rpm/SPECS/dwarves.spec | 17 ++++++++++--- 5 files changed, 114 insertions(+), 5 deletions(-) create mode 100644 changes-v1.23 diff --git a/CMakeLists.txt b/CMakeLists.txt index 2ab66e4..c0363b8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -54,9 +54,9 @@ if (NOT DEFINED BUILD_SHARED_LIBS) endif (NOT DEFINED BUILD_SHARED_LIBS) # Just for grepping, DWARVES_VERSION isn't used anywhere anymore -# add_definitions(-D_GNU_SOURCE -DDWARVES_VERSION="v1.22") +# add_definitions(-D_GNU_SOURCE -DDWARVES_VERSION="v1.23") add_definitions(-D_GNU_SOURCE -DDWARVES_MAJOR_VERSION=1) -add_definitions(-D_GNU_SOURCE -DDWARVES_MINOR_VERSION=22) +add_definitions(-D_GNU_SOURCE -DDWARVES_MINOR_VERSION=23) find_package(DWARF REQUIRED) find_package(ZLIB REQUIRED) find_package(argp REQUIRED) diff --git a/MANIFEST b/MANIFEST index d0e48d7..0e1eefa 100644 --- a/MANIFEST +++ b/MANIFEST @@ -51,6 +51,7 @@ changes-v1.19 changes-v1.20 changes-v1.21 changes-v1.22 +changes-v1.23 buildcmd.sh COPYING NEWS diff --git a/NEWS b/NEWS index b87d3b7..efd0745 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,44 @@ +v1.23 + +Wed Dec 8 2021 + +54ae2f7f5e4f6328 Revert "fprintf: Allow making struct/enum/union anonymous" +69fb1861de35120c Revert "pahole: Add --inner_anon option" +005236c3e40eeb64 pahole: Add --inner_anon option +7c5e35b63bd26f1d fprintf: Allow making struct/enum/union anonymous +d99d551930cf4b4b btf_encoder: Support btf_type_tag attribute +3da248c3284ef905 man pages: Add missing --skip_encoding_btf_decl_tag entry +a58ecca0a89b142b man pages: Add missing --skip_encoding_btf_type_tag entry +b488c8d328845bd8 dwarf_loader: Support btf_type_tag attribute +a0cc68687f1281cd dutil: Move DW_TAG_LLVM_annotation definition to dutil.h +76401e9e46f07753 libbpf: Sync with latest libbpf repo to pick support for BTF_KIND_TYPE_TAG +0135ccd632796ab3 dwarf_loader: Warn about DW_TAG_skeleton_unit and give a workaround +433dc780ca48944b fprintf: Add DWARF5 tags added in elfutils 0.170 +7af9ed4aed182869 dwarf_loader: Print the hexadecimal value for unexpected tags in die__process() +ec62499774c4bcac btf_encoder: generate BTF_KIND_DECL_TAGs for typedef btf_decl_tag attributes +468b4196f65458e8 dwarf_loader: support typedef DW_TAG_LLVM_annotation +696c62180455fd29 btf_loader: Use cacheline size to infer alignment +48f4086b766d2214 btf_loader: Propagate struct conf_load +772725a77d3323c6 dwarves_fprintf: Move cacheline_size into struct conf_fprintf +cdd088c05cfed082 btfdiff: Suppress alignment tags with BTF as well as with DWARF +836c139fdf6f2b13 btf_loader: Infer alignment info +4db65fe0cd02b3cc core: Export tag__natural_alignment() +43e8216c25ee767f fprintf: Fix __attribute__((__aligned__(N)) handling for struct members +c52f6421f21146ad btf: Rename btf_tag to btf_decl_tag +3433c67bbd158e1d manpages: Minor fixes +e975d0fba833d02d btf_loader: Refactor class__fixup_btf_bitfields +5282feee6d4d3a88 pahole: Add --skip_missing option +6931e393f8f6d81f fprintf: Fix nested struct printing wrt attributes +16a7acaba4466121 btf_encoder: Fix handling of percpu symbols on s390 +3cde0135ca51de73 dwarf_loader: Fix heap overflow when accessing variable specification +a9c99e98815f06bd dwarves: Introduce conf_load->thread_exit() callback +cc6c7d473d518324 Update libbpf to get API to combine BTF +e38e89e8539b144a btf_encoder: Generate BTF_KIND_TAG from llvm annotations +aa8c494e65a77fa5 dwarf_loader: Parse DWARF tag DW_TAG_LLVM_annotation +3d20210d84f61ee2 CMakeList.txt: Don't download libbpf source when system library is used +38fad22d669ab044 libbpf: Get latest libbpf +88431099950ab3e8 CMakeList.txt: Make python optional + v1.22: Mon Aug 23 2021 diff --git a/changes-v1.23 b/changes-v1.23 new file mode 100644 index 0000000..426f6f3 --- /dev/null +++ b/changes-v1.23 @@ -0,0 +1,56 @@ +DWARF loader: + +- Read DW_TAG_LLVM_annotation tags, associating it with variables, functions, + types. So far this is only being used by the BTF encoder, but the pretty + printer should use this as well in a future release, printing these + attributes when available. + +- Initial support for DW_TAG_skeleton_unit, so far just suggest looking up a + matching .dwo file to be used instead. Automagically doing this is in the + plans for a future release. + +- Fix heap overflow when accessing variable specification. + +BTF encoder: + +- Support the new BTF type tag attribute, encoding DW_TAG_LLVM_annotation DWARF + tags as BTF_KIND_TYPE_TAG and BTF_KIND_DECL_TAG. + + This allows __attribute__((btf_type_tag("tag1"))) to be used for variables, + functions, typedefs, so that contextual information can be stored in BTF and + used by the kernel BPF verifier for more checks. + + The --skip_encoding_btf_type_tag option can be used to suppress this. + +- Fix handling of percpu symbols on s390. + +BTF loader: + +- Use cacheline size to infer alignment. + +btfdiff: + +- Now that the BTF loader infers struct member alingment, and as that is just + an heuristic, suppress printing the alignment when pretty printing from BTF + info like is done when printing from DWARF. + +pahole: + +- Add --skip_missing so that we don't stop when not finding one of the types passed + to -C. + +Pretty printer: + +- Fix __attribute__((__aligned__(N)) printing alignment for struct members. + +- Fix nested __attribute__(__aligned__(N)) struct printing order, so that + rebuilding from the printed source circles back to the original source code + alignment semantics. + +Build: + +- No need to download libbpf source when using the system library (libbpf-devel). + +- Make python optional + +Signed-off-by: Arnaldo Carvalho de Melo diff --git a/rpm/SPECS/dwarves.spec b/rpm/SPECS/dwarves.spec index 021dd10..0b4846e 100644 --- a/rpm/SPECS/dwarves.spec +++ b/rpm/SPECS/dwarves.spec @@ -2,7 +2,7 @@ %define libver 1 Name: dwarves -Version: 1.22 +Version: 1.23 Release: 1%{?dist} License: GPLv2 Summary: Debugging Information Manipulation Tools (pahole & friends) @@ -79,7 +79,7 @@ rm -Rf %{buildroot} %files %doc README.ctracer %doc README.btf -%doc changes-v1.22 +%doc changes-v1.23 %doc NEWS %{_bindir}/btfdiff %{_bindir}/codiff @@ -131,7 +131,18 @@ rm -Rf %{buildroot} %{_libdir}/%{libname}_reorganize.so %changelog -* Mon Aug 23 2021 Aug 17 2021 Arnaldo Carvalho de Melo - 1.22-1 +* Wed Dec 8 2021 Arnaldo Carvalho de Melo - 1.23-1 +- New release: v1.23 +- Process DW_TAG_LLVM_annotation tags. +- Initial support for DW_TAG_skeleton_unit. +- Encode BTF_KIND_TYPE_TAG and BTF_KIND_DECL_TAG +- Fix handling of percpu symbols on s390. +- Use cacheline size to infer struct member alignment from BTF. +- Add --skip_missing to not stop when not finding one of -C arguments. +- Fix __attribute__((__aligned__(N)) printing alignment for struct members. +- Fix nested __attribute__(__aligned__(N)) struct printing order. + +* Mon Aug 23 2021 Arnaldo Carvalho de Melo - 1.22-1 - New release: v1.22 - Introduce -j/--jobs option to specify the number of threads to use. - Multithreaded DWARF loading, requires elfutils >= 0.178.