Re: [PATCH v2 0/4] Fix kselftest build with sub-directory

From: Shuah Khan
Date: Tue Jul 12 2022 - 22:27:55 EST

On 7/12/22 2:29 AM, Guillaume Tucker wrote:
Earlier attempts to get "make O=build kselftest-all" to work were
not successful as they made undesirable changes to some functions
in the top-level Makefile. This series takes a different
approach by removing the root cause of the problem within
kselftest, which is when the sub-Makefile tries to install kernel
headers "backwards" by calling make with the top-level Makefile.
The actual issue comes from the fact that $(srctree) is ".." when
building in a sub-directory with "O=build" which then obviously
makes "-C $(top_srcdir)" point outside of the real source tree.

With this series, the generic kselftest targets work as expected
from the top level with or without a build directory e.g.:

$ make kselftest-all

$ make O=build kselftest-all

Then in order to build using the sub-Makefile explicitly, the
headers have to be installed first. This is arguably a valid
requirement to have when building a tool from a sub-Makefile.
For example, "make -C tools/testing/nvdimm/" fails in a similar
way until <asm/rwonce.h> has been generated by a kernel build.

v2: replace headers_install with headers

I already applied the series. Please send me patches I can apply
on top of the ones in linux-kselftest next branch.

-- Shuah