* [PATCH v1] tools build: Add explicitly sequenced -lzstd to libbfd feature fallback
@ 2026-09-09 18:10 Ian Rogers
0 siblings, 0 replies; only message in thread
From: Ian Rogers @ 2026-09-09 18:10 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Peter Zijlstra, Ingo Molnar, Namhyung Kim, Jiri Olsa, Ian Rogers,
Adrian Hunter, James Clark, Nick Terrell, David Sterba,
Tomas Glozar, Michael Jeanson, Dmitrii Dolgov, Costa Shulyupin,
Alexandre Chartre, Leo Yan, linux-kernel, linux-perf-users,
Arnaldo Carvalho de Melo
Distributions like Fedora currently ship a statically compiled binutils
libbfd that natively depends on zstd to decompress sections (e.g.
undefined reference to 'ZSTD_decompress').
Since libbfd generally does not reliably distribute a .pc file for
pkg-config (e.g. 'binutils-dev' evaluates missing on standard PKG_CONFIG_PATH
checks), perf historically supplements manual linker flags in fallback
chains (-lbfd -ldl -liberty -lz).
Extend the testing cascade in tools/build/feature/Makefile and
tools/perf/Makefile.config to probe for '-lz -lzstd' when the basic
fallback variants fail, natively supporting statically compiled binutils on
recent distributions.
Reported-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Ian Rogers <irogers@google.com>
Assisted-by: Antigravity:gemini-3.1-pro
---
tools/build/Makefile.feature | 3 ++-
tools/build/feature/Makefile | 12 +++++++++---
tools/perf/Makefile.config | 2 ++
3 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/tools/build/Makefile.feature b/tools/build/Makefile.feature
index 99eb0ea09537..1268ac6f130e 100644
--- a/tools/build/Makefile.feature
+++ b/tools/build/Makefile.feature
@@ -121,6 +121,7 @@ FEATURE_TESTS_EXTRA := \
libcheck \
libbfd-liberty \
libbfd-liberty-z \
+ libbfd-liberty-z-zstd \
libopencsd \
libperl \
llvm \
@@ -161,7 +162,7 @@ FEATURE_DISPLAY ?= \
# Declare group members of a feature to display the logical OR of the detection
# result instead of each member result.
#
-FEATURE_GROUP_MEMBERS-libbfd = libbfd-liberty libbfd-liberty-z
+FEATURE_GROUP_MEMBERS-libbfd = libbfd-liberty libbfd-liberty-z libbfd-liberty-z-zstd
#
# Declare list of feature dependency packages that provide pkg-config files.
diff --git a/tools/build/feature/Makefile b/tools/build/feature/Makefile
index 7d165018116a..410987df3a48 100644
--- a/tools/build/feature/Makefile
+++ b/tools/build/feature/Makefile
@@ -21,6 +21,7 @@ FILES= \
test-reallocarray.bin \
test-libbfd-liberty.bin \
test-libbfd-liberty-z.bin \
+ test-libbfd-liberty-z-zstd.bin \
test-cplus-demangle.bin \
test-cxa-demangle.bin \
test-libcap.bin \
@@ -272,15 +273,17 @@ $(OUTPUT)test-libbfd.bin:
$(BUILD_BFD)
$(OUTPUT)test-libbfd-threadsafe.bin:
- $(BUILD_BFD) || $(BUILD_BFD) -liberty || $(BUILD_BFD) -liberty -lz
+ $(BUILD_BFD) || $(BUILD_BFD) -liberty || $(BUILD_BFD) -liberty -lz || $(BUILD_BFD) -liberty -lz -lzstd
$(OUTPUT)test-disassembler-four-args.bin:
$(BUILD_BFD) -lopcodes || $(BUILD_BFD) -lopcodes -liberty || \
- $(BUILD_BFD) -lopcodes -liberty -lz
+ $(BUILD_BFD) -lopcodes -liberty -lz || \
+ $(BUILD_BFD) -lopcodes -liberty -lz -lzstd
$(OUTPUT)test-disassembler-init-styled.bin:
$(BUILD_BFD) -lopcodes || $(BUILD_BFD) -lopcodes -liberty || \
- $(BUILD_BFD) -lopcodes -liberty -lz
+ $(BUILD_BFD) -lopcodes -liberty -lz || \
+ $(BUILD_BFD) -lopcodes -liberty -lz -lzstd
$(OUTPUT)test-reallocarray.bin:
$(BUILD)
@@ -291,6 +294,9 @@ $(OUTPUT)test-libbfd-liberty.bin:
$(OUTPUT)test-libbfd-liberty-z.bin:
$(CC) $(CFLAGS) -Wall -Werror -o $@ test-libbfd.c -DPACKAGE='"perf"' $(LDFLAGS) -lbfd -ldl -liberty -lz
+$(OUTPUT)test-libbfd-liberty-z-zstd.bin:
+ $(CC) $(CFLAGS) -Wall -Werror -o $@ test-libbfd.c -DPACKAGE='"perf"' $(LDFLAGS) -lbfd -ldl -liberty -lz -lzstd
+
$(OUTPUT)test-cplus-demangle.bin:
$(BUILD) -liberty
diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
index 4d5993da9f94..24a99545c9bc 100644
--- a/tools/perf/Makefile.config
+++ b/tools/perf/Makefile.config
@@ -906,6 +906,8 @@ ifdef BUILD_NONDISTRO
EXTLIBS += -lbfd -lopcodes -liberty
else ifeq ($(feature-libbfd-liberty-z), 1)
EXTLIBS += -lbfd -lopcodes -liberty -lz
+ else ifeq ($(feature-libbfd-liberty-z-zstd), 1)
+ EXTLIBS += -lbfd -lopcodes -liberty -lz -lzstd
endif
CFLAGS += -DHAVE_LIBBFD_SUPPORT
--
2.55.0.1003.g10538fe699-goog
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-09-09 18:10 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-09 18:10 [PATCH v1] tools build: Add explicitly sequenced -lzstd to libbfd feature fallback Ian Rogers
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®