Re: [PATCH 01/11] Makefile: kselftest and kselftest-clean fail for make O=dir case

From: Masahiro Yamada
Date: Tue Sep 19 2017 - 23:40:15 EST


2017-09-19 8:14 GMT+09:00 Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>:
> On 09/12/2017 05:52 PM, Shuah Khan wrote:
>> kselftest and kselftest-clean targets fail when object directory is
>> specified to relocate objects. Fix it so it can find the source tree
>> to build from.
>>
>> make O=/tmp/kselftest_top kselftest
>>
>> make[1]: Entering directory '/tmp/kselftest_top'
>> make[2]: Entering directory '/tmp/kselftest_top'
>> make[2]: *** tools/testing/selftests: No such file or directory. Stop.
>> make[2]: Leaving directory '/tmp/kselftest_top'
>> ./linux-kselftest/Makefile:1185: recipe for target
>> 'kselftest' failed
>> make[1]: *** [kselftest] Error 2
>> make[1]: Leaving directory '/tmp/kselftest_top'
>> Makefile:145: recipe for target 'sub-make' failed
>> make: *** [sub-make] Error 2
>>
>> Signed-off-by: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
>
> Hi Masahiro/Michal,
>
> Is it okay to take this patch via linux-kselftest git? If you are okay
> with that, please Ack it and I will plan to include this in my update.
>
> thanks,
> -- Shuah
>
>
>> ---
>> Makefile | 13 +++++++++----
>> 1 file changed, 9 insertions(+), 4 deletions(-)
>>
>> diff --git a/Makefile b/Makefile
>> index eccb8d704c23..6a85322d0b3e 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -1180,13 +1180,18 @@ headers_check: headers_install
>> # ---------------------------------------------------------------------------
>> # Kernel selftest
>>
>> +PHONY += __kselftest
>> + kselftest_src := tools/testing/selftests
>> + ifneq ($(KBUILD_SRC),)
>> + kselftest_src := $(KBUILD_SRC)/tools/testing/selftests
>> + endif
>> PHONY += kselftest
>> -kselftest:
>> - $(Q)$(MAKE) -C tools/testing/selftests run_tests
>> +kselftest: __kselftest
>> + $(Q)$(MAKE) -C $(kselftest_src) run_tests
>>
>> PHONY += kselftest-clean
>> -kselftest-clean:
>> - $(Q)$(MAKE) -C tools/testing/selftests clean
>> +kselftest-clean: __kselftest
>> + $(Q)$(MAKE) -C $(kselftest_src) clean
>>
>> PHONY += kselftest-merge
>> kselftest-merge:
>>
>

Why don't you simply add $(srctree)/ to tools/testing/selftests?

Like,

PHONY += kselftest
kselftest:
$(Q)$(MAKE) -C $(srctree)/tools/testing/selftests run_tests

PHONY += kselftest-clean
kselftest-clean:
$(Q)$(MAKE) -C $(srctree)/tools/testing/selftests clean



--
Best Regards
Masahiro Yamada