When I compiled tools/bootconfig from top directory with -C option, the O= option didn't work correctly if I passed a relative path.
$ make O=./builddir/ -C tools/bootconfig/ make: Entering directory '/home/mhiramat/ksrc/linux/tools/bootconfig' ../scripts/Makefile.include:4: *** O=./builddir/ does not exist. Stop. make: Leaving directory '/home/mhiramat/ksrc/linux/tools/bootconfig'
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 --- tools/scripts/Makefile.include | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
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),)
On Thu, Mar 05, 2020 at 03:03:03PM +0900, Masami Hiramatsu wrote:
When I compiled tools/bootconfig from top directory with -C option, the O= option didn't work correctly if I passed a relative path.
$ make O=./builddir/ -C tools/bootconfig/ make: Entering directory '/home/mhiramat/ksrc/linux/tools/bootconfig' ../scripts/Makefile.include:4: *** O=./builddir/ does not exist. Stop. make: Leaving directory '/home/mhiramat/ksrc/linux/tools/bootconfig'
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
tools/scripts/Makefile.include | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
<formletter>
This is not the correct way to submit patches for inclusion in the stable kernel tree. Please read: https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html for how to do this properly.
</formletter>
On 3/4/20 10:03 PM, Masami Hiramatsu wrote:
When I compiled tools/bootconfig from top directory with -C option, the O= option didn't work correctly if I passed a relative path.
$ make O=./builddir/ -C tools/bootconfig/ make: Entering directory '/home/mhiramat/ksrc/linux/tools/bootconfig' ../scripts/Makefile.include:4: *** O=./builddir/ does not exist. Stop. make: Leaving directory '/home/mhiramat/ksrc/linux/tools/bootconfig'
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
Hi Masami,
This patch doesn't fix anything AFAICT. Didn't help in my testing.
Thanks.
tools/scripts/Makefile.include | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
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),)
On Thu, 5 Mar 2020 10:50:43 -0800 Randy Dunlap rdunlap@infradead.org wrote:
On 3/4/20 10:03 PM, Masami Hiramatsu wrote:
When I compiled tools/bootconfig from top directory with -C option, the O= option didn't work correctly if I passed a relative path.
$ make O=./builddir/ -C tools/bootconfig/ make: Entering directory '/home/mhiramat/ksrc/linux/tools/bootconfig' ../scripts/Makefile.include:4: *** O=./builddir/ does not exist. Stop. make: Leaving directory '/home/mhiramat/ksrc/linux/tools/bootconfig'
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
Hi Masami,
This patch doesn't fix anything AFAICT. Didn't help in my testing.
Hmm, what happens on your case? Maybe PWD is not set?
Thank you,
Thanks.
tools/scripts/Makefile.include | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
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),)
-- ~Randy Reported-by: Randy Dunlap rdunlap@infradead.org
On 3/5/20 5:39 PM, Masami Hiramatsu wrote:
On Thu, 5 Mar 2020 10:50:43 -0800 Randy Dunlap rdunlap@infradead.org wrote:
On 3/4/20 10:03 PM, Masami Hiramatsu wrote:
When I compiled tools/bootconfig from top directory with -C option, the O= option didn't work correctly if I passed a relative path.
$ make O=./builddir/ -C tools/bootconfig/ make: Entering directory '/home/mhiramat/ksrc/linux/tools/bootconfig' ../scripts/Makefile.include:4: *** O=./builddir/ does not exist. Stop. make: Leaving directory '/home/mhiramat/ksrc/linux/tools/bootconfig'
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
Hi Masami,
This patch doesn't fix anything AFAICT. Didn't help in my testing.
Hmm, what happens on your case? Maybe PWD is not set?
Thank you,
The binary is still built in $srctree/tools/bootconfig/.
If I 'echo $PWD' at a prompt, I get the correct pwd.
Thanks.
tools/scripts/Makefile.include | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
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),)
linux-stable-mirror@lists.linaro.org