diff options
| author | James Clark <james.clark@linaro.org> | 2025-12-23 20:00:27 +0300 |
|---|---|---|
| committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2026-01-07 01:14:46 +0300 |
| commit | cff602f65988da48cc1b84f6c3588a25a320fa81 (patch) | |
| tree | 04469bfba77efea09b66f7383898ab56ff8392a3 /tools | |
| parent | c0cb97a275ffa00d91a0715dce8105ae3f627727 (diff) | |
| download | linux-cff602f65988da48cc1b84f6c3588a25a320fa81.tar.xz | |
perf build: Feature test for libbfd thread safety API
The non-distro build requires libbfd 2.42 since commit b72b8132d8fd
("perf libbfd: Ensure libbfd is initialized prior to use"). Add a
feature test so that it's obvious why the build fails if this criteria
isn't met.
Signed-off-by: James Clark <james.clark@linaro.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Justin Stitt <justinstitt@google.com>
Cc: Leo Yan <leo.yan@arm.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Nathan Chancellor <nathan@kernel.org>
Cc: Nick Desaulniers <nick.desaulniers+lkml@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/build/Makefile.feature | 1 | ||||
| -rw-r--r-- | tools/build/feature/Makefile | 4 | ||||
| -rw-r--r-- | tools/build/feature/test-libbfd-threadsafe.c | 18 | ||||
| -rw-r--r-- | tools/perf/Makefile.config | 5 |
4 files changed, 28 insertions, 0 deletions
diff --git a/tools/build/Makefile.feature b/tools/build/Makefile.feature index bbaa88bb9b30..7f119eafc7c4 100644 --- a/tools/build/Makefile.feature +++ b/tools/build/Makefile.feature @@ -71,6 +71,7 @@ FEATURE_TESTS_BASIC := \ gettid \ glibc \ libbfd \ + libbfd-threadsafe \ libelf \ libelf-getphdrnum \ libelf-gelf_getnote \ diff --git a/tools/build/feature/Makefile b/tools/build/feature/Makefile index d84db7df7988..5c15572d505e 100644 --- a/tools/build/feature/Makefile +++ b/tools/build/feature/Makefile @@ -13,6 +13,7 @@ FILES= \ test-gtk2-infobar.bin \ test-hello.bin \ test-libbfd.bin \ + test-libbfd-threadsafe.bin \ test-disassembler-four-args.bin \ test-disassembler-init-styled.bin \ test-reallocarray.bin \ @@ -267,6 +268,9 @@ $(OUTPUT)test-libpython.bin: $(OUTPUT)test-libbfd.bin: $(BUILD_BFD) +$(OUTPUT)test-libbfd-threadsafe.bin: + $(BUILD_BFD) || $(BUILD_BFD) -liberty || $(BUILD_BFD) -liberty -lz + $(OUTPUT)test-disassembler-four-args.bin: $(BUILD_BFD) -lopcodes || $(BUILD_BFD) -lopcodes -liberty || \ $(BUILD_BFD) -lopcodes -liberty -lz diff --git a/tools/build/feature/test-libbfd-threadsafe.c b/tools/build/feature/test-libbfd-threadsafe.c new file mode 100644 index 000000000000..fe97f95f6f06 --- /dev/null +++ b/tools/build/feature/test-libbfd-threadsafe.c @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: GPL-2.0 +#include <bfd.h> + +static bool lock(void *unused) +{ + return true; +} + +static bool unlock(void *unused) +{ + return true; +} + +int main(void) +{ + /* Check for presence of new thread safety API (version 2.42) */ + return !bfd_thread_init(lock, unlock, NULL); +} diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config index fb1cf2bf5d83..6f2c7bd36e74 100644 --- a/tools/perf/Makefile.config +++ b/tools/perf/Makefile.config @@ -935,9 +935,14 @@ ifdef BUILD_NONDISTRO $(call feature_check,libbfd) $(call feature_check,disassembler-four-args) $(call feature_check,disassembler-init-styled) + $(call feature_check,libbfd-threadsafe) $(call feature_check,libbfd-liberty) $(call feature_check,libbfd-liberty-z) + ifneq ($(feature-libbfd-threadsafe), 1) + $(error binutils 2.42 or later is required for non-distro builds) + endif + # we may be on a system that requires -liberty and (maybe) -lz # to link against -lbfd; test each case individually here ifeq ($(feature-libbfd), 1) |
