On Sun, Apr 25, 2021 at 4:05 AM Marcelo Schmitt <marcelo.schmitt1@xxxxxxxxx> wrote: > > Hi, a friend and I were chasing bug 205219 [1] listed in Bugzilla. > We step into something a little bit different when trying to reproduce > the buggy behavior. In our try, compilation failed with a message form > make asking us to clean the source tree. We couldn't run kunit_tool > after compiling the kernel for x86, as described by Ted in the > discussion pointed out by the bug report. > > Steps to reproduce: > > 0) Run kunit_tool > $ ./tools/testing/kunit/kunit.py run > Works fine with a clean tree. > > 1) Compile the kernel for some architecture (we did it for x86_64). > > 2) Run kunit_tool again > $ ./tools/testing/kunit/kunit.py run > Fails with a message form make asking us to clean the source tree. This is probably because tools/testing/kunit/kunit_kernel.py runs make with O= option. > Removing the clean source tree check from the top-level Makefile gives > us a similar error to what was described in the bug report. We see that > after running `git clean -fdx` kunit_tool runs nicely again. However, > this is not a real solution since some kernel binaries are erased by git. > > We also had a look into the commit messages of Masahiro Yamada but > couldn't quite grasp why the check for the tree to be clean was added. > We could invest more time in this issue but actually don't know how to > proceed. We'd be glad to receive any comment about it. We could also try > something else if it's a too hard issue for beginners. I think you are talking about the following error message. *** *** The source tree is not clean, please run 'make mrproper' *** in /home/masahiro/ref/linux *** Kbuild checks if the source tree is clean before starting the out-of-tree build because the out-of-tree build relies on VPATH. This check has existed for a long time. (at least more than a decade) If Kbuild started the O= build with a dirty source tree, some stale generated source files would have been remaining. (some *.c and *.h are generated by scripts) Then, Kbuild would wrongly use stale source files in srctree instead of generating new ones in objtree. > [1]: https://bugzilla.kernel.org/show_bug.cgi?id=205219 > > > Best Regards, > > Marcelo -- Best Regards Masahiro Yamada