Linux Perf Users
 help / color / mirror / Atom feed
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

      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