On Fri, May 9, 2025 at 7:14 AM Shuah Khan <sk...@linuxfoundation.org> wrote: > > On 5/7/25 17:49, Masahiro Yamada wrote: > > On Thu, May 8, 2025 at 6:38 AM Shuah Khan <sk...@linuxfoundation.org> wrote: > >> > >> On 5/7/25 01:49, Masahiro Yamada wrote: > >>> Building the kernel with O= is affected by stale in-tree build artifacts. > >>> > >>> So, if the source tree is not clean, Kbuild displays the following: > >>> > >>> $ make ARCH=um O=build defconfig > >>> make[1]: Entering directory '/.../linux/build' > >>> *** > >>> *** The source tree is not clean, please run 'make ARCH=um mrproper' > >>> *** in /.../linux > >>> *** > >>> make[2]: *** [/.../linux/Makefile:673: outputmakefile] Error 1 > >>> make[1]: *** [/.../linux/Makefile:248: __sub-make] Error 2 > >>> make[1]: Leaving directory '/.../linux/build' > >>> make: *** [Makefile:248: __sub-make] Error 2 > >>> > >>> Usually, running 'make mrproper' is sufficient for cleaning the source > >>> tree for out-of-tree builds. > >>> > >>> However, building UML generates build artifacts not only in arch/um/, > >>> but also in the SUBARCH directory (i.e., arch/x86/). If in-tree stale > >>> files remain under arch/x86/, Kbuild will reuse them instead of creating > >>> new ones under the specified build directory. > >>> > >>> This commit makes 'make ARCH=um clean' recurse into the SUBARCH directory. > >>> > >>> Reported-by: Shuah Khan <sk...@linuxfoundation.org> > >>> Closes: > >>> https://lore.kernel.org/lkml/20250502172459.14175-1-sk...@linuxfoundation.org/ > >>> Signed-off-by: Masahiro Yamada <masahi...@kernel.org> > >> > >> It doesn't solve the problem. I still see arch/x86/realmode/rm/pasyms.h > >> after running make ARCH=um mrproper > > > > > > Why not? > > > > This patch allows 'make ARCH=um mrproper' > > to clean up both arch/um and arch/x86/. > > > > It is really simple to test the behavior. > > > > > > [Without this patch] > > > > masahiro@zoe:~/workspace/linux-kbuild(master)$ touch > > arch/x86/realmode/rm/pasyms.h > > masahiro@zoe:~/workspace/linux-kbuild(master)$ make ARCH=um mrproper > > masahiro@zoe:~/workspace/linux-kbuild(master)$ ls > > arch/x86/realmode/rm/pasyms.h > > arch/x86/realmode/rm/pasyms.h > > > > [With this patch] > > > > masahiro@zoe:~/workspace/linux-kbuild(kbuild)$ touch > > arch/x86/realmode/rm/pasyms.h > > masahiro@zoe:~/workspace/linux-kbuild(kbuild)$ make ARCH=um mrproper > > CLEAN arch/x86/realmode/rm > > masahiro@zoe:~/workspace/linux-kbuild(kbuild)$ ls > > arch/x86/realmode/rm/pasyms.h > > ls: cannot access 'arch/x86/realmode/rm/pasyms.h': No such file or directory > > > > I ran another controlled test starting from a totally clean repo > and the building - looks good to me. > > Reviewed-by: Shuah Khan <sk...@linuxfoundation.org> > > thanks, > -- Shuah >
Applied to linux-kbuild. -- Best Regards Masahiro Yamada