Re: [PATCH bpf-next v2] selftests/bpf: avoid generating untracked files when running bpf selftests

From: Jiri Olsa
Date: Sun Dec 29 2024 - 16:41:18 EST


On Tue, Dec 24, 2024 at 03:59:57PM +0800, Jiayuan Chen wrote:
> Currently, when we run the BPF selftests with the following command:
> 'make -C tools/testing/selftests TARGETS=bpf SKIP_TARGETS=""'
>
> The command generates untracked files and directories with make version
> less than 4.4:
> '''
> Untracked files:
> (use "git add <file>..." to include in what will be committed)
> tools/testing/selftests/bpfFEATURE-DUMP.selftests
> tools/testing/selftests/bpffeature/
> '''
> We lost slash after word "bpf".
>
> The reason is slash appending code is as follow:
> '''
> OUTPUT := $(OUTPUT)/
> $(eval include ../../../build/Makefile.feature)
> OUTPUT := $(patsubst %/,%,$(OUTPUT))
> '''
>
> This way of assigning values to OUTPUT will never be effective for the
> variable OUTPUT provided via the command argument [1] and bpf makefile
> is called from parent Makfile(tools/testing/selftests/Makefile) like:
> '''
> all:
> ...
> $(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET
> '''
>
> According to GNU make, we can use override Directive to fix this issue [2].
>
> [1]: https://www.gnu.org/software/make/manual/make.html#Overriding
> [2]: https://www.gnu.org/software/make/manual/make.html#Override-Directive
> Fixes: dc3a8804d790 ("selftests/bpf: Adapt OUTPUT appending logic to lower versions of Make")
>
> Signed-off-by: Jiayuan Chen <mrpre@xxxxxxx>

lgtm, tested with make 4.3

Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>

jirka


>
> ---
> v1->v2: fix patchwork check fail.
> ---
> ---
> tools/testing/selftests/bpf/Makefile | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile
> index 9e870e519c30..eb4d21651aa7 100644
> --- a/tools/testing/selftests/bpf/Makefile
> +++ b/tools/testing/selftests/bpf/Makefile
> @@ -202,9 +202,9 @@ ifeq ($(shell expr $(MAKE_VERSION) \>= 4.4), 1)
> $(let OUTPUT,$(OUTPUT)/,\
> $(eval include ../../../build/Makefile.feature))
> else
> -OUTPUT := $(OUTPUT)/
> +override OUTPUT := $(OUTPUT)/
> $(eval include ../../../build/Makefile.feature)
> -OUTPUT := $(patsubst %/,%,$(OUTPUT))
> +override OUTPUT := $(patsubst %/,%,$(OUTPUT))
> endif
> endif
>
> --
> 2.43.5
>