From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Ian Rogers <irogers@google.com>
Cc: Nathan Chancellor <nathan@kernel.org>,
Nick Desaulniers <nick.desaulniers+lkml@gmail.com>,
Bill Wendling <morbo@google.com>,
Justin Stitt <justinstitt@google.com>,
Namhyung Kim <namhyung@kernel.org>,
Dmitrii Dolgov <9erthalion6@gmail.com>,
James Clark <james.clark@linaro.org>, Leo Yan <leo.yan@arm.com>,
Costa Shulyupin <costa.shul@redhat.com>,
Yuzhuo Jing <yuzhuo@google.com>,
linux-kernel@vger.kernel.org, bpf@vger.kernel.org,
llvm@lists.linux.dev, linux-perf-users@vger.kernel.org
Subject: Re: [PATCH v1] tools build: Fix feature checks to touch target files on success
Date: Thu, 4 Jun 2026 10:38:41 -0300 [thread overview]
Message-ID: <aiF_4cz_8oLPnKXa@x1> (raw)
In-Reply-To: <20260531010924.525824-1-irogers@google.com>
On Sat, May 30, 2026 at 06:09:24PM -0700, Ian Rogers wrote:
> 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.
>
> Tested-by: James Clark <james.clark@linaro.org>
Thanks, applied to perf-tools-next, for v7.2.
- Arnaldo
> Assisted-by: Gemini:gemini-3.1-pro-preview
> Signed-off-by: Ian Rogers <irogers@google.com>
> ---
> This patch originally appeared in the now merged perf patch series:
> https://lore.kernel.org/linux-perf-users/20260518154638.2798789-1-irogers@google.com/
> ---
> tools/build/feature/Makefile | 13 +++++++------
> 1 file changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/tools/build/feature/Makefile b/tools/build/feature/Makefile
> index 704c687ed3ad..5b4a984973c4 100644
> --- a/tools/build/feature/Makefile
> +++ b/tools/build/feature/Makefile
> @@ -75,7 +75,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))
>
> @@ -383,9 +384,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)
> @@ -397,8 +398,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,
> --
> 2.54.0.823.g6e5bcc1fc9-goog
prev parent reply other threads:[~2026-06-04 13:38 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-31 1:09 [PATCH v1] tools build: Fix feature checks to touch target files on success Ian Rogers
2026-06-04 13:38 ` Arnaldo Carvalho de Melo [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aiF_4cz_8oLPnKXa@x1 \
--to=acme@kernel.org \
--cc=9erthalion6@gmail.com \
--cc=bpf@vger.kernel.org \
--cc=costa.shul@redhat.com \
--cc=irogers@google.com \
--cc=james.clark@linaro.org \
--cc=justinstitt@google.com \
--cc=leo.yan@arm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=morbo@google.com \
--cc=namhyung@kernel.org \
--cc=nathan@kernel.org \
--cc=nick.desaulniers+lkml@gmail.com \
--cc=yuzhuo@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox