Re: [PATCH v2 6/6] selftests: enable O and KBUILD_OUTPUT

From: Michael Ellerman
Date: Tue Mar 21 2017 - 04:36:06 EST


Andy Lutomirski <luto@xxxxxxxxxxxxxx> writes:

> On Tue, Nov 29, 2016 at 3:55 AM, <bamvor.zhangjian@xxxxxxxxxx> wrote:
>> From: Bamvor Jian Zhang <bamvor.zhangjian@xxxxxxxxxx>
>>
>> Enable O and KBUILD_OUTPUT for kselftest. User could compile kselftest
>> to another directory by passing O or KBUILD_OUTPUT. And O is high
>> priority than KBUILD_OUTPUT.
>
> Sorry for noticing this late, but this patch
> (a8ba798bc8ec663cf02e80b0dd770324de9bafd9) is really annoying for
> people who *don't* use these fancy options:

Yeah sorry, it wasn't quite ready to go in.

> $ make -C tools/testing/selftests/x86 ldt_gdt_32
> make: Entering directory '/home/luto/apps/linux/tools/testing/selftests/x86'
> Makefile:44: warning: overriding recipe for target 'clean'
> ../lib.mk:55: warning: ignoring old recipe for target 'clean'
> make: *** No rule to make target 'ldt_gdt_32'. Stop.
> make: Leaving directory '/home/luto/apps/linux/tools/testing/selftests/x86'
>
> Is there any way that you can make this work again?

There obviously is *a* way, but I'm not sure there's a simple and
obviously correct way that is an easy fix for 4.11.

I see at least 18 Makefile's in tools/testing/selftests that use
$(OUTPUT)/, which would all need to be updated at least to use $(OUTPUT)
(no trailing slash), and then some other changes to not propagate OUTPUT
when the user didn't specify it. But hopefully someone will prove me
wrong.

As a (poor) alternative you can do:

$ cd tools/testing/selftests/x86; make $PWD/ldt_gdt_32

or just:

$ make -C tools/testing/selftests/x86

cheers