| From 15421124ad2ce1b3272c8b8e02bfbd4d54017751 Mon Sep 17 00:00:00 2001 |
| From: Masami Hiramatsu <mhiramat@kernel.org> |
| Date: Sat, 7 Mar 2020 03:32:58 +0900 |
| Subject: [PATCH] tools: Let O= makes handle a relative path with -C option |
| |
| commit be40920fbf1003c38ccdc02b571e01a75d890c82 upstream. |
| |
| When I tried to compile tools/perf from the 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. |
| |
| 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: Andrew Morton <akpm@linux-foundation.org> |
| Cc: Borislav Petkov <bp@alien8.de> |
| Cc: Geert Uytterhoeven <geert@linux-m68k.org> |
| Cc: Jiri Olsa <jolsa@redhat.com> |
| Cc: Masahiro Yamada <masahiroy@kernel.org> |
| Cc: Michal Marek <michal.lkml@markovi.net> |
| Cc: Peter Zijlstra <peterz@infradead.org> |
| Cc: Sasha Levin <sashal@kernel.org> |
| Cc: Steven Rostedt (VMware) <rostedt@goodmis.org> |
| Cc: stable@vger.kernel.org |
| Link: http://lore.kernel.org/lkml/158351957799.3363.15269768530697526765.stgit@devnote2 |
| Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| 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 495066bafbe3..8fc6b1ca47dc 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),) |
| -- |
| 2.7.4 |
| |