Re: [PATCH v3 13/18] perf build: Remove libbfd support

From: Daniel Xu
Date: Tue Jan 28 2025 - 19:32:05 EST


Hi Ian,

On Wed, Jan 22, 2025 at 09:43:03AM -0800, Ian Rogers wrote:
> libbfd is license incompatible with perf and building requires the
> BUILD_NONDISTRO=1 build flag. Remove the code to simplify the code
> base.
>
> Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>
> ---
> tools/perf/Documentation/perf-check.txt | 1 -
> tools/perf/Makefile.config | 38 +---
> tools/perf/builtin-check.c | 1 -
> tools/perf/tests/Build | 1 -
> tools/perf/tests/builtin-test.c | 1 -
> tools/perf/tests/pe-file-parsing.c | 101 ----------
> tools/perf/tests/tests.h | 1 -
> tools/perf/util/demangle-cxx.cpp | 13 +-
> tools/perf/util/disasm_bpf.c | 166 ----------------
> tools/perf/util/srcline.c | 243 +-----------------------
> tools/perf/util/symbol-elf.c | 86 +--------
> tools/perf/util/symbol.c | 135 -------------
> tools/perf/util/symbol.h | 4 -
> 13 files changed, 7 insertions(+), 784 deletions(-)
> delete mode 100644 tools/perf/tests/pe-file-parsing.c

[..]

I was briefly investigating why the centos build of perf was not
demangling rust v0 symbols [0]. From looking at the rust issue [1], it
appears the rust team somehow delivered support for v0 demangling
through libbfd. The code itself looked a bit odd (relying on cxx
demangle to run first?), but that's a separate thing.

The centos build does not build with libbfd for the license issues you
mentioned. So your change probably won't regress any distro use cases.
But it does remove support for motivated users who don't have
re-distribution requirements.

But since this patchset came up first in my search, I thought it'd be
good to mention that someone probably needs to add v0 support to
tools/perf/util/demangle-rust.c.

Thanks,
Daniel


[0]: https://doc.rust-lang.org/rustc/symbol-mangling/v0.html
[1]: https://github.com/rust-lang/rust/issues/60705