mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-22 02:17:36 -04:00
tools build: Fix feature checks to touch target files on success
In tools/build/feature/Makefile, test-clang-bpf-co-re.bin and test-bpftool-skeletons.bin redirected grep output but never touched or created the $@ target file upon success. Because the target file was never created on disk, Kbuild could never cache the result of the check. Consequently, Make treated the prerequisite as missing and continuously re-executed the Clang BPF backend and bpftool feature checks on every single sub-make evaluation during build startup, or on every incremental build. Refactor both feature check recipes to touch $@ on success. For test-clang-bpf-co-re.bin, group the shell pipeline within curly braces and redirect both stdout and stderr to .make.output to allow errors to be inspected and not appear in build output. List test-clang-bpf-co-re.bin's input C file as a dependency so modification triggers a rebuild. For test-bpftool-skeletons.bin, add it to the FILES list so that it will be cleaned. Assisted-by: Gemini:gemini-3.1-pro-preview Signed-off-by: Ian Rogers <irogers@google.com> Tested-by: James Clark <james.clark@linaro.org> Cc: Bill Wendling <morbo@google.com> Cc: Costa Shulyupin <costa.shul@redhat.com> Cc: Dmitrii Dolgov <9erthalion6@gmail.com> Cc: Justin Stitt <justinstitt@google.com> Cc: Leo Yan <leo.yan@arm.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Nathan Chancellor <nathan@kernel.org> Cc: Nick Desaulniers <nick.desaulniers+lkml@gmail.com> Cc: Yuzhuo Jing <yuzhuo@google.com> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
committed by
Arnaldo Carvalho de Melo
parent
4caadd04f6
commit
7e1f74bbbe
@@ -72,7 +72,8 @@ FILES= \
|
||||
test-file-handle.bin \
|
||||
test-libpfm4.bin \
|
||||
test-rust.bin \
|
||||
test-libopenssl.bin
|
||||
test-libopenssl.bin \
|
||||
test-bpftool-skeletons.bin
|
||||
|
||||
FILES := $(addprefix $(OUTPUT),$(FILES))
|
||||
|
||||
@@ -379,9 +380,9 @@ $(OUTPUT)test-libaio.bin:
|
||||
$(OUTPUT)test-libzstd.bin:
|
||||
$(BUILD) -lzstd
|
||||
|
||||
$(OUTPUT)test-clang-bpf-co-re.bin:
|
||||
$(CLANG) -S -g --target=bpf -o - $(patsubst %.bin,%.c,$(@F)) | \
|
||||
grep BTF_KIND_VAR
|
||||
$(OUTPUT)test-clang-bpf-co-re.bin: test-clang-bpf-co-re.c
|
||||
{ $(CLANG) -S -g --target=bpf -o - $< | \
|
||||
grep BTF_KIND_VAR; } > $(@:.bin=.make.output) 2>&1 && touch $@
|
||||
|
||||
$(OUTPUT)test-file-handle.bin:
|
||||
$(BUILD)
|
||||
@@ -393,8 +394,8 @@ $(OUTPUT)test-libopenssl.bin:
|
||||
$(BUILD) $(shell $(PKG_CONFIG) --libs --cflags openssl 2>/dev/null)
|
||||
|
||||
$(OUTPUT)test-bpftool-skeletons.bin:
|
||||
$(SYSTEM_BPFTOOL) version | grep '^features:.*skeletons' \
|
||||
> $(@:.bin=.make.output) 2>&1
|
||||
{ $(SYSTEM_BPFTOOL) version | grep '^features:.*skeletons'; } \
|
||||
> $(@:.bin=.make.output) 2>&1 && touch $@
|
||||
|
||||
# Testing Rust is special: we don't compile anything, it's enough to check the
|
||||
# compiler presence. Compiling a test code for this purposes is problematic,
|
||||
|
||||
Reference in New Issue
Block a user