2021-08-16 13:22:54

by James Clark

[permalink] [raw]
Subject: [PATCH] tools build: Fix feature detect clean for out of source builds

Currently the clean target when using O= isn't cleaning the feature
detect output. This is because O= and OUTPUT= are set to canonical
paths. For example in tools/perf/Makefile:

FULL_O := $(shell cd $(PWD); readlink -f $(O) || echo $(O))

This means that OUTPUT ends in a / and most usages prepend it to a file
without adding an extra /. This line that was changed adds an extra /
before the 'feature' folder but not to the end, resulting in a clean
command like this:

rm -f /tmp/build//featuretest-all.bin ...

After the change the clean command looks like this:

rm -f /tmp/build/feature/test-all.bin ...

Signed-off-by: James Clark <[email protected]>
---
tools/build/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/build/Makefile b/tools/build/Makefile
index 5ed41b96fcde..6f11e6fc9ffe 100644
--- a/tools/build/Makefile
+++ b/tools/build/Makefile
@@ -32,7 +32,7 @@ all: $(OUTPUT)fixdep

# Make sure there's anything to clean,
# feature contains check for existing OUTPUT
-TMP_O := $(if $(OUTPUT),$(OUTPUT)/feature,./)
+TMP_O := $(if $(OUTPUT),$(OUTPUT)feature/,./)

clean:
$(call QUIET_CLEAN, fixdep)
--
2.28.0


2021-08-31 18:48:21

by Jiri Olsa

[permalink] [raw]
Subject: Re: [PATCH] tools build: Fix feature detect clean for out of source builds

On Mon, Aug 16, 2021 at 02:07:05PM +0100, James Clark wrote:
> Currently the clean target when using O= isn't cleaning the feature
> detect output. This is because O= and OUTPUT= are set to canonical
> paths. For example in tools/perf/Makefile:
>
> FULL_O := $(shell cd $(PWD); readlink -f $(O) || echo $(O))
>
> This means that OUTPUT ends in a / and most usages prepend it to a file
> without adding an extra /. This line that was changed adds an extra /
> before the 'feature' folder but not to the end, resulting in a clean
> command like this:
>
> rm -f /tmp/build//featuretest-all.bin ...
>
> After the change the clean command looks like this:
>
> rm -f /tmp/build/feature/test-all.bin ...
>
> Signed-off-by: James Clark <[email protected]>

nice catch!

Acked-by: Jiri Olsa <[email protected]>

thanks,
jirka

> ---
> tools/build/Makefile | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/build/Makefile b/tools/build/Makefile
> index 5ed41b96fcde..6f11e6fc9ffe 100644
> --- a/tools/build/Makefile
> +++ b/tools/build/Makefile
> @@ -32,7 +32,7 @@ all: $(OUTPUT)fixdep
>
> # Make sure there's anything to clean,
> # feature contains check for existing OUTPUT
> -TMP_O := $(if $(OUTPUT),$(OUTPUT)/feature,./)
> +TMP_O := $(if $(OUTPUT),$(OUTPUT)feature/,./)
>
> clean:
> $(call QUIET_CLEAN, fixdep)
> --
> 2.28.0
>

2021-09-01 14:32:01

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: Re: [PATCH] tools build: Fix feature detect clean for out of source builds

Em Tue, Aug 31, 2021 at 08:46:10PM +0200, Jiri Olsa escreveu:
> On Mon, Aug 16, 2021 at 02:07:05PM +0100, James Clark wrote:
> > Currently the clean target when using O= isn't cleaning the feature
> > detect output. This is because O= and OUTPUT= are set to canonical
> > paths. For example in tools/perf/Makefile:
> >
> > FULL_O := $(shell cd $(PWD); readlink -f $(O) || echo $(O))
> >
> > This means that OUTPUT ends in a / and most usages prepend it to a file
> > without adding an extra /. This line that was changed adds an extra /
> > before the 'feature' folder but not to the end, resulting in a clean
> > command like this:
> >
> > rm -f /tmp/build//featuretest-all.bin ...
> >
> > After the change the clean command looks like this:
> >
> > rm -f /tmp/build/feature/test-all.bin ...
> >
> > Signed-off-by: James Clark <[email protected]>
>
> nice catch!
>
> Acked-by: Jiri Olsa <[email protected]>

Thanks, applied and added:

Fixes: 762323eb39a257c3 ("perf build: Move feature cleanup under tools/build")

- Arnaldo