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

From: Shuah Khan
Date: Wed Sep 20 2017 - 13:30:30 EST


On 09/19/2017 09:39 PM, Masahiro Yamada wrote:
> 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
>
>
>

I started with the simpler logic and decided to add explicit check
for KBUILD_SRC due to isolate some error I was seeing from sub-make.

Forgot to go back and revisit the simpler logic. Thanks for catching
this. I am not seeing any issues with the simplified. Sending v2.

Thanks for the review.

-- Shuah