[PATCH v1 0/3] 2 memory fixes and a build fix

From: Ian Rogers
Date: Mon Sep 23 2024 - 20:37:38 EST


I was looking into some lsan regressions and a latent issue with
libdw, creating these fixes.

A thought, we should probably simplify the libdw logic but rather than
do it here I'll do it as a separate series on top of these. The issues
I see are:

1) dwfl_thread_getframes is used to test for the presence of
libdw-dwarf-unwind. The blame date on this function is
2013-05-30. As the function is 10 years old I think having libdw
implies having dwfl_thread_getframes and so we can just merge the
two pieces of logic instead of having different feature tests and
ifdefs.

2) similarly, dwarf_getlocations has a blame date of 2013-08-23 so
let's just make libdw tests test for this and make having libdw
imply dwarf_getlocations support.

3) similarly, dwarf_getcfi has a blame date of 2009-06-24 so let's
just make libdw tests test for this and make having libdw imply
dwarf_getcfi support.

4) in Makefie.config feature-dwarf is a synonym for libdw support. I
think using the name libdw is more intention revealing as dwarf can
mean multiple things. Let's change HAVE_DWARF_SUPPORT to
HAVE_LIBDW_SUPPORT and all similar dwarf vs libdw names.

5) We have "#if _ELFUTILS_PREREQ(0, 142)" testing for elfutils version
0.142. Elfutils 0.142 was released around 2009-06-13 (via git blame
on the NEWS file). Let's remove the #if and ensure elfutils feature
tests for at least 0.142. If someone were using an incredibly old
version then they'd lose some elfutils support, but given the 15
year old age of the library I find it unlikely anyone is doing
this. They can also just move to a newer version.

>From the mailing list I notice also overlap with the last patch and
this series:
https://lore.kernel.org/lkml/20240919013513.118527-1-yangjihong@xxxxxxxxxxxxx/
Simplifying the libdw support will address some of those issues too.

Ian Rogers (3):
perf disasm: Fix capstone memory leak
perf probe: Fix libdw memory leak
perf build: Fix !HAVE_DWARF_GETLOCATIONS_SUPPORT

tools/perf/Makefile.config | 6 ++++++
tools/perf/util/disasm.c | 11 +++++++----
tools/perf/util/dwarf-aux.h | 1 +
tools/perf/util/probe-finder.c | 5 +++++
4 files changed, 19 insertions(+), 4 deletions(-)

--
2.46.0.792.g87dc391469-goog