Bug 116411: tools/perf_clean: output directory does not exist. Stop.

From: TJ
Date: Fri Apr 15 2016 - 16:05:13 EST


v4.6-rc3

tools/perf then tools/perf_clean fails in the source tree:

*** output directory "/home/all/SourceCode/linux/linux/tools/perf/tools/perf/" does not exist. Stop.

https://bugzilla.kernel.org/show_bug.cgi?id=116411

The problem is that recursive/sub-makes effectively doing O=$(O)/$(subdir) is changing the base directory resulting in $(O)/$(subdir)/$(subdir)/ : "tools/perf" "/" "tools/perf" "/". This is done in tools/scripts/Makefile.include:

OUTPUT := $(ABSOLUTE_O)/$(if $(subdir),$(subdir)/)

This is another symptom of the bug I reported to the mailing-list and bugzilla on Sun, 10 Apr 2016 22:36:14 +0100, which said:

Trying to do an out-of-tree build using either absolute or relative paths for O= fails when trying to build tools/perf.

More details in ""Directory does not exist" when doing tools perf_install out-of-tree build"

https://bugzilla.kernel.org/show_bug.cgi?id=116131

git blame shows commits c883122a and bf35182f are responsible for the path calculation code.