2022-05-23 05:56:10

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [Bug Report] - kselftest build fails if output directory is first level sub-directory

On Sat, May 21, 2022 at 3:44 PM Muhammad Usama Anjum
<[email protected]> wrote:
>
> Hello,
>
> kselftest can be built using the kernel's top most Makefile without
> using kselftest's Makefile directly. But there is bug in the top most
> Makefile. The build fails if the specified output directory is first
> level sub-directory. Here is a example to reproduce this bug:
>
> make kselftest-all O=build
>
> "The Make is working in a wrong directory, that is why the relative path
> does not work." Masahiro Yamada. Feel free to fix it if someone pin the bug.
>
> It should be noted that the build works in some other combinations:
> make kselftest-all (works)
> make kselftest-all O=/tmp (works)
> make kselftest-all O=build/build2 (works)
>
> My unsuccessful attempt to fix this bug can be found here:
> https://lore.kernel.org/lkml/[email protected]/
>
> Thanks,
> Muhammad Usama Anjum


This problem starts from the bad design of the kselftest framework.
I did some research before. I think I can fix the root cause but
currently I do not have enough time to do it.


KBUILD_ABS_SRCTREE is a user-interface to request
Kbuild to use the absolute path.
If it is forced in the top Makefile, users have no way to
negate it.
It is true that using the absolute path is a quick work-around
because you do not need to care about the current working directory.

If you insist on it, just go ahead. It is just two line changes.
Once the issue is fixed in a better way, your patch can be reverted easily.



--
Best Regards
Masahiro Yamada


2022-05-23 09:49:47

by Muhammad Usama Anjum

[permalink] [raw]
Subject: Re: [Bug Report] - kselftest build fails if output directory is first level sub-directory

On 5/22/22 10:15 PM, Masahiro Yamada wrote:
> On Sat, May 21, 2022 at 3:44 PM Muhammad Usama Anjum
> <[email protected]> wrote:
>>
>> Hello,
>>
>> kselftest can be built using the kernel's top most Makefile without
>> using kselftest's Makefile directly. But there is bug in the top most
>> Makefile. The build fails if the specified output directory is first
>> level sub-directory. Here is a example to reproduce this bug:
>>
>> make kselftest-all O=build
>>
>> "The Make is working in a wrong directory, that is why the relative path
>> does not work." Masahiro Yamada. Feel free to fix it if someone pin the bug.
>>
>> It should be noted that the build works in some other combinations:
>> make kselftest-all (works)
>> make kselftest-all O=/tmp (works)
>> make kselftest-all O=build/build2 (works)
>>
>> My unsuccessful attempt to fix this bug can be found here:
>> https://lore.kernel.org/lkml/[email protected]/
>>
>> Thanks,
>> Muhammad Usama Anjum
>
>
> This problem starts from the bad design of the kselftest framework.
> I did some research before. I think I can fix the root cause but
> currently I do not have enough time to do it.
>
>
> KBUILD_ABS_SRCTREE is a user-interface to request
> Kbuild to use the absolute path.
> If it is forced in the top Makefile, users have no way to
> negate it.
> It is true that using the absolute path is a quick work-around
> because you do not need to care about the current working directory.
>
> If you insist on it, just go ahead. It is just two line changes.
> Once the issue is fixed in a better way, your patch can be reverted easily.
Thank you for replying. Lets merge it Shuah?

>
>
>

--
Muhammad Usama Anjum

2022-06-08 04:36:24

by Muhammad Usama Anjum

[permalink] [raw]
Subject: Re: [Bug Report] - kselftest build fails if output directory is first level sub-directory

Hi Shuah,

Should we merge this?

Thanks,
Usama

On 5/23/22 2:40 PM, Muhammad Usama Anjum wrote:
> On 5/22/22 10:15 PM, Masahiro Yamada wrote:
>> On Sat, May 21, 2022 at 3:44 PM Muhammad Usama Anjum
>> <[email protected]> wrote:
>>>
>>> Hello,
>>>
>>> kselftest can be built using the kernel's top most Makefile without
>>> using kselftest's Makefile directly. But there is bug in the top most
>>> Makefile. The build fails if the specified output directory is first
>>> level sub-directory. Here is a example to reproduce this bug:
>>>
>>> make kselftest-all O=build
>>>
>>> "The Make is working in a wrong directory, that is why the relative path
>>> does not work." Masahiro Yamada. Feel free to fix it if someone pin the bug.
>>>
>>> It should be noted that the build works in some other combinations:
>>> make kselftest-all (works)
>>> make kselftest-all O=/tmp (works)
>>> make kselftest-all O=build/build2 (works)
>>>
>>> My unsuccessful attempt to fix this bug can be found here:
>>> https://lore.kernel.org/lkml/[email protected]/
>>>
>>> Thanks,
>>> Muhammad Usama Anjum
>>
>>
>> This problem starts from the bad design of the kselftest framework.
>> I did some research before. I think I can fix the root cause but
>> currently I do not have enough time to do it.
>>
>>
>> KBUILD_ABS_SRCTREE is a user-interface to request
>> Kbuild to use the absolute path.
>> If it is forced in the top Makefile, users have no way to
>> negate it.
>> It is true that using the absolute path is a quick work-around
>> because you do not need to care about the current working directory.
>>
>> If you insist on it, just go ahead. It is just two line changes.
>> Once the issue is fixed in a better way, your patch can be reverted easily.
> Thank you for replying. Lets merge it Shuah?
>
>>
>>
>>
>

--
Muhammad Usama Anjum

2022-06-08 06:13:12

by Shuah Khan

[permalink] [raw]
Subject: Re: [Bug Report] - kselftest build fails if output directory is first level sub-directory

On 5/22/22 11:15 AM, Masahiro Yamada wrote:
> On Sat, May 21, 2022 at 3:44 PM Muhammad Usama Anjum
> <[email protected]> wrote:
>>
>> Hello,
>>
>> kselftest can be built using the kernel's top most Makefile without
>> using kselftest's Makefile directly. But there is bug in the top most
>> Makefile. The build fails if the specified output directory is first
>> level sub-directory. Here is a example to reproduce this bug:
>>
>> make kselftest-all O=build
>>
>> "The Make is working in a wrong directory, that is why the relative path
>> does not work." Masahiro Yamada. Feel free to fix it if someone pin the bug.
>>
>> It should be noted that the build works in some other combinations:
>> make kselftest-all (works)
>> make kselftest-all O=/tmp (works)
>> make kselftest-all O=build/build2 (works)
>>
>> My unsuccessful attempt to fix this bug can be found here:
>> https://lore.kernel.org/lkml/[email protected]/
>>
>> Thanks,
>> Muhammad Usama Anjum
>
>
> This problem starts from the bad design of the kselftest framework.
> I did some research before. I think I can fix the root cause but
> currently I do not have enough time to do it.
>
>
> KBUILD_ABS_SRCTREE is a user-interface to request
> Kbuild to use the absolute path.
> If it is forced in the top Makefile, users have no way to
> negate it.
> It is true that using the absolute path is a quick work-around
> because you do not need to care about the current working directory.
>
> If you insist on it, just go ahead. It is just two line changes.
> Once the issue is fixed in a better way, your patch can be reverted easily.
>
>
>

Why don't we work on fixing it the wright way? I would rather go that
route than using short rem fixes.

Usama, would you be interested in working on a proper fix as recommended
by Masahiro?

thanks,
-- Shuah

2022-06-27 07:35:31

by Muhammad Usama Anjum

[permalink] [raw]
Subject: Re: [Bug Report] - kselftest build fails if output directory is first level sub-directory

>> This problem starts from the bad design of the kselftest framework.
>> I did some research before. I think I can fix the root cause but
>> currently I do not have enough time to do it.
>>
>>
>> KBUILD_ABS_SRCTREE is a user-interface to request
>> Kbuild to use the absolute path.
>> If it is forced in the top Makefile, users have no way to
>> negate it.
>> It is true that using the absolute path is a quick work-around
>> because you do not need to care about the current working directory.
>>
>> If you insist on it,  just go ahead.  It is just two line changes.
>> Once the issue is fixed in a better way, your patch can be reverted
>> easily.
>>
> Why don't we work on fixing it the wright way? I would rather go that
> route than using short rem fixes.
>
> Usama, would you be interested in working on a proper fix as recommended
> by Masahiro?
I've made another attempt:
https://lore.kernel.org/lkml/[email protected]/

>
> thanks,
> -- Shuah

--
Muhammad Usama Anjum