mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* ANNOUNCE: pahole v1.32 (DWZ alt files, lots of new regression tests, BTF signatures, coverage analysis)
@ 2026-09-13  2:21 Arnaldo Carvalho de Melo
  0 siblings, 0 replies; only message in thread
From: Arnaldo Carvalho de Melo @ 2026-09-13  2:21 UTC (permalink / raw)
  To: dwarves
  Cc: Alan Maguire, Ihor Solodrai, Eduard Zingerman, Jiri Olsa,
	Yonghong Song, Alexis Lothoré,
	Thomas Petazzoni, Jan Alexander Steffens, Domenico Andreoli,
	Matthias Schwarzott, Dominique Leuenberger, Dominique Martinet,
	linux-kernel, bpf

Hi,

	The v1.32 release of pahole is out, with a lot of new regression
tests, support for dwz alt files, which makes pahole finally support
most if not all userspace DWARF files, signature improvements in the BTF
encoder, support to LLVM based coverage analysis, and several scripts
to help develop and test these utilities.

Main git repo:

   https://git.kernel.org/pub/scm/devel/pahole/pahole.git

Mirror git repo:

   https://github.com/acmel/dwarves.git

tarball + gpg signature:

   https://fedorapeople.org/~acme/dwarves/dwarves-1.32.tar.xz
   https://fedorapeople.org/~acme/dwarves/dwarves-1.32.tar.bz2
   https://fedorapeople.org/~acme/dwarves/dwarves-1.32.tar.sign

	Thanks a lot to all the contributors and distro packagers,
you're on the CC list, we appreciate a lot the work you put into these
tools,

Best Regards,

- Arnaldo & Alan

DWARF loader:

- Support DW_FORM_GNU_ref_alt references to dwz alternate debug files
- Add cu parameter to tag__set_spec() and dwarf_tag__set_attr_type()
- Fix cus__merging_cu failing to detect DW_FORM_ref_addr
- Support DW_TAG_imported_unit for same-file partial units
- Allow forcing the merge of CUs for solving inter CU tag references
- Initial support for DW_TAG_subprogram in DW_TAG_enumeration
- Initial support for DW_TAG_variant_part
- Replace stale FIXME/XXX comments with explanations
- Fix data race in tag__init() decl_file string cache
- Skip libdw__lock when elfutils is built thread-safe
- Fix --fixup_silly_bitfields condition check
- Fix annotation failure leaks in variable and typedef creation
- Allocate type_dcu via dwarf_cu__new to fix dangling stack pointer
- Analyze per-parameter information for true signatures
- Collect per-parameter information
- Detect aggregate ABI register usage and signature changes
- Add support for DW_TAG_GNU_annotation
- Extract die__add_btf_type_tag() helper [NFC]
- Detect reordered parameters
- Handle DW_AT_location attrs containing DW_OP_plus_uconst

BTF loader:

- Fix multi-dimensional array loading
- Handle decl tag component_idx for parameters
- Fix warnings due to type permutation

BTF encoder:

- Fix multi-dimensional array encoding
- Fall back to objcopy when llvm-objcopy is not available
- Add elf_strptr NULL checks and fix kfunc bounds
- Fix early cleanup crashes in btf_encoder__new/delete
- Use btf_encoder__tag_type() for all type ID computations
- Fix interior pointer free and missing NULL check
- Ensure the first same-name function has a non-zero address
- Add O_TRUNC to btf_encoder__write_raw_file()
- Only skip optimized parms when ABI changed
- Emit true function signatures
- Prefer strong function definitions for BTF generation
- Add true_signature feature support for "."-suffixed functions
- Fix a verbose output issue
- Factor out BPF kfunc emission
- Refactor btf_encoder__add_func_proto
- Remove encoder pointer from btf_encoder_func_state

pahole:

- Fix -C -T segfault
- Fix option name in the -m/-C error message
- Apply the struct-only filters to unions
- Don't match unions with --with_flexible_array
- Fix --unions --packable segfault
- Guard pipe_seek() against negative offsets
- Use fseek for seekable files in --prettify and --seek_bytes
- Skip inline expansions during BTF encoding
- Fix parse_btf_features("all") being a silent no-op
- Fix --errno typo that decrements instead of negating
- Fix instance memory leak on early returns in
  prototype__stdio_fprintf_value
- Fix BTF function parameter type match check
- Add "layout" BTF encoding feature
- Fix discarded-qualifiers for strchr/strstr.
- Refactor selftests

Regression tests:

- Add pfunct split BTF test to btf_split
- Verify the downloaded perf tarball checksum before extracting
- Use a portable high-resolution timestamp
- Build the test_bin fixture in the per-test tmpdir
- Use POSIX [ instead of [[ in test_lib.sh
- btf_type_tag_order.sh: Use gawk for capture-group match()
- Fix coverage build by respecting build-coverage/ in PATH
- Add automatic perf building for cross-distro compatibility
- Check minimum perf metadata records instead of exact counts
- Fix perf tests for container environments
- Force DWARF 5 in atomic_types test for _Atomic support
- Skip tests gracefully on old bpftool versions
- Skip instead of fail when old toolchains lack feature support
- Fix gcc_true_signatures.sh compiler detection and awk syntax
- Add prototype expression parsing and prettify test
- Add codiff_multi_cu.sh to cover __cus__find_cu_by_name
- Add BTF vmlinux encoding test
- Add typedef chain display test
- Add _Atomic type compile emission test
- Add pahole scattered option paths coverage test
- Add pahole --header_type, --range and --seek_bytes prettify test
- Add codiff member type change and function prototype diff test
- Add dwarf_loader.c bitfield recode and inlining edge case test
- Add dwarves.c core API coverage test
- Add prefcnt type reference counting coverage test
- Add elf_symtab, gobuffer, dutil and pglobal coverage test
- Add dwarves_emit and dwarves_reorganize coverage test
- Add bitfield, cross-boundary and mixed member type test
- Add BTF encoder coverage test for vars, floats and multi-CU
- Add codiff terse, verbose and multi-CU diff test
- Add pfunct CLI option coverage
- Add pglobal variable and function listing test
- Add multi-file loading test
- Add 5 btf_encoder.c targeted coverage tests
- Add medium-effort coverage tests for 5 uncovered code paths
- Add CLI display, BTF encoding options and auxiliary tools tests
- Add enumerator search test, in 2 csets
- Add type containment and pointer search test, in 2 csets
- Add coverage-diff.sh workflow and coverage_table.py reporter
- Add LLVM source-based code coverage support
- Add split BTF encoding test (vmlinux base + kernel module)
- Add BTF_KIND_FWD encoding and loading round-trip test
- Add BTF bitfield encoding/loading round-trip test
- Add BTF FLOAT and ENUM64 type encoding tests
- Add BTF VAR and DATASEC encoding test
- Add expand_pointers, pfunct_stats and class_list_file tests
- Add BTF arena type tag encoding test
- Add pdwtags DWARF tag display test
- Add codiff struct comparison test
- Add bitfield layout and data member filtering test
- Add sort output and separator test
- Add display format options test
- Add class name filtering test
- Add compilable output and type filtering test
- Add type expansion and anonymous struct test
- Add sizes and holes display test
- Fix mktemp suffix portability for Alpine Linux
- Add emit_atomic.sh test and fix pfunct-btf-decl-tags.sh quoting
- Reduce reproducible_build thread count iterations
- Add --dump-artifacts to capture DWARF/BTF from binaries
- Add --jobs/-j option to limit parallel test execution
- Show referenced log file contents in verbose mode
- Add --verbose/-v option for better failure diagnosis
- Add PERF_BIN support and preserve build logs on failure
- Add test number filtering and waiting status line
- Add dynamic test timing and reordering to avoid slow tests blocking
  results
- Add --vmlinux option to specify vmlinux file for tests
- Run test scripts in parallel
- Fix test_lib.sh and test scripts to run from any directory
- Guard cleanup() against empty outdir to prevent rm /*
- Add BTF_FUNCTIONS_QUICK mode for fast CI iteration
- Skip and find vmlinux tests when the running kernel vmlinux is not
  available
- Add inter-CU type reference comparison test
- Add GCC default-BTF optimized parameter coverage
- Add BTF true_signature encoding tests
- Add btf_type_tag ordering test
- Support GCC in pfunct-btf-decl-tags test
- add gcc true signature test

Build:

- Automate the steps needed to release a new version
- Add build-check-series.sh for bisectability verification
- Add tarball targets similar to kernel's perf-tar-src-pkg
- Add git SHA tracking via --devel_version option
- Add test, coverage and list-targets make targets
- Warn loudly when coverage instrumentation is enabled
- Add vmlinux_comparison.py for DWARF/BTF analysis
- Update minimum required version from 3.5 to 3.10

Library:

- Remove 11 dead functions found via coverage analysis, in 2 csets
- Add exec_objcopy() shell-injection-safe helper
- Fix variable shadowing in __cus__find_struct_by_name()
- Fix heap buffer overflow in languages__parse realloc
- Don't search for holes before member byte sizes are cached
- Fix missing list head initialization in type__clone_members
- libbpf sync with 1.8
- Fix NULL dereference in remove_dyn()

Man pages:

- Improve language and formatting
- Fix incorrect command line argument in documentation
- describe layout BTF feature
- document true_signature btf_feature

CI:

- Update LLVM version to 22
- Add clang+aarch64 to matrix
- build/install bpftool from kernel tree
- Support building kernel with LLVM

pfunct:

- Add man page
- Add support for split BTF
- Mark file-local functions as static

Other:

- build-and-test-cmd.sh: Move build-dir detection to test_lib.sh, fix
  container PATH
- build-and-test-cmd.sh: Add CI build+test script
- Fix -Wsign-compare warnings across the codebase

btfdiff:

- Remove leftover comment about --flat_arrays usage
- Remove --flat_arrays now that pahole encodes multi dim arrays in BTF

CTF loader:

- Fix error path resource leaks

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-09-13  2:21 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-13  2:21 ANNOUNCE: pahole v1.32 (DWZ alt files, lots of new regression tests, BTF signatures, coverage analysis) Arnaldo Carvalho de Melo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®