[PATCH 0/3] Initial support for some Rust tags + way to ask for CU merging at load time

Arnaldo Carvalho de Melo
2026-03-23T21:15:44Z

Hi,

Here is a series with some initial support for some Rust DWARF
tags and a way to ask for CUs to be merged just like we do for LTO to
cope with inter CU tag references.

This makes one of the regression tests to pass again as perf now
has some rust source files and thus Rust CUs in a perf binary built with
DWARF, which is used to test pahole's pretty printing features, where it
uses the DWARF in a perf binary to decode perf.data records.

As mentioned in the man page, this is hackish, to properly
support LTO, rust, and any inter-CU references we need to yet again
rethink how we do DWARF parallel loading, perhaps leaving the recoding
of ids to be a last step, using a common hash for types to be used at
the recoding of ids, etc, but for now reusing the existing merging of
CUs in such cases provides a workaround.

- Arnaldo

Arnaldo Carvalho de Melo (3):
dwarf_loader: Initial support for DW_TAG_variant_part
dwarf_loader: Initial support for DW_TAG_subprogram in
DW_TAG_enumeration
dwarf_loader: Allow forcing the merge of CUs for solving inter CU tag
references

dwarf_loader.c | 66 +++++++++++++++++++++++++++++++------
dwarves.c | 6 ++++
dwarves.h | 8 +++++
man-pages/pahole.1 | 12 +++++++
pahole.c | 8 +++++
tests/prettify_perf.data.sh | 4 +--
6 files changed, 92 insertions(+), 12 deletions(-)

--
2.53.0