Messages in this thread | | | From | Arnaldo Carvalho de Melo <> | Date | Fri, 6 Mar 2020 17:12:03 -0300 | Subject | Re: [BUGFIX PATCH v2] tools: Let O= makes handle a relative path with -C option |
| |
Em Sat, Mar 07, 2020 at 03:32:58AM +0900, Masami Hiramatsu escreveu: > When I compiled tools/perf from top directory with the -C option, > the O= option didn't work correctly if I passed a relative path. > > $ make O=BUILD -C tools/perf/ > make: Entering directory '/home/mhiramat/ksrc/linux/tools/perf' > BUILD: Doing 'make -j8' parallel build > ../scripts/Makefile.include:4: *** O=/home/mhiramat/ksrc/linux/tools/perf/BUILD does not exist. Stop. > make: *** [Makefile:70: all] Error 2 > make: Leaving directory '/home/mhiramat/ksrc/linux/tools/perf' > > The O= directory existence check failed because the check > script ran in the build target directory instead of the > directory where I ran the make command. > > To fix that, once change directory to $(PWD) and check O= > directory, since the PWD is set to where the make command > runs.
Tested with O=/non/relative/paths, as I always use, not to polute the checked out kerneo sources, and with a relative path, as fixed in this patch, now both works, thanks, will be in my next perf/urgent pull req to Ingo.
- Arnaldo
> Fixes: c883122acc0d ("perf tools: Let O= makes handle relative paths") > Reported-by: Randy Dunlap <rdunlap@infradead.org> > Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org> > Cc: stable@vger.kernel.org > > --- > Changes in V2: > - Fix tools/perf/Makefile because it has own O= pre-process. > - Use tools/perf for example. > - Add explicit Cc: stable@vger.kernel.org tag. > --- > tools/perf/Makefile | 2 +- > tools/scripts/Makefile.include | 4 ++-- > 2 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/tools/perf/Makefile b/tools/perf/Makefile > index 7902a5681fc8..b8fc7d972be9 100644 > --- a/tools/perf/Makefile > +++ b/tools/perf/Makefile > @@ -35,7 +35,7 @@ endif > # Only pass canonical directory names as the output directory: > # > ifneq ($(O),) > - FULL_O := $(shell readlink -f $(O) || echo $(O)) > + FULL_O := $(shell cd $(PWD); readlink -f $(O) || echo $(O)) > endif > > # > diff --git a/tools/scripts/Makefile.include b/tools/scripts/Makefile.include > index ded7a950dc40..6d2f3a1b2249 100644 > --- a/tools/scripts/Makefile.include > +++ b/tools/scripts/Makefile.include > @@ -1,8 +1,8 @@ > # SPDX-License-Identifier: GPL-2.0 > ifneq ($(O),) > ifeq ($(origin O), command line) > - dummy := $(if $(shell test -d $(O) || echo $(O)),$(error O=$(O) does not exist),) > - ABSOLUTE_O := $(shell cd $(O) ; pwd) > + dummy := $(if $(shell cd $(PWD); test -d $(O) || echo $(O)),$(error O=$(O) does not exist),) > + ABSOLUTE_O := $(shell cd $(PWD); cd $(O) ; pwd) > OUTPUT := $(ABSOLUTE_O)/$(if $(subdir),$(subdir)/) > COMMAND_O := O=$(ABSOLUTE_O) > ifeq ($(objtree),) >
--
- Arnaldo
| |