On Thu, Dec 5, 2024 at 5:51 AM Alison Schofield <alison.schofield@xxxxxxxxx> wrote: > > On Sun, Nov 10, 2024 at 10:34:33AM +0900, Masahiro Yamada wrote: > > Currently, Kbuild always operates in the output directory of the kernel, > > even when building external modules. This increases the risk of external > > module Makefiles attempting to write to the kernel directory. > > > > This commit switches the working directory to the external module > > directory, allowing the removal of the $(KBUILD_EXTMOD)/ prefix from > > some build artifacts. > > > > The command for building external modules maintains backward > > compatibility, but Makefiles that rely on working in the kernel > > directory may break. In such cases, $(objtree) and $(srctree) should > > be used to refer to the output and source directories of the kernel. > > > > The appearance of the build log will change as follows: > > > > [Before] > > > > $ make -C /path/to/my/linux M=/path/to/my/externel/module > > make: Entering directory '/path/to/my/linux' > > CC [M] /path/to/my/externel/module/helloworld.o > > MODPOST /path/to/my/externel/module/Module.symvers > > CC [M] /path/to/my/externel/module/helloworld.mod.o > > CC [M] /path/to/my/externel/module/.module-common.o > > LD [M] /path/to/my/externel/module/helloworld.ko > > make: Leaving directory '/path/to/my/linux' > > > > [After] > > > > $ make -C /path/to/my/linux M=/path/to/my/externel/module > > make: Entering directory '/path/to/my/linux' > > make[1]: Entering directory '/path/to/my/externel/module' > > CC [M] helloworld.o > > MODPOST Module.symvers > > CC [M] helloworld.mod.o > > CC [M] .module-common.o > > LD [M] helloworld.ko > > make[1]: Leaving directory '/path/to/my/externel/module' > > make: Leaving directory '/path/to/my/linux' > > > > Printing "Entering directory" twice is cumbersome. This will be > > addressed later. > > > > Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx> > > --- > > With this in v6.13-rc1 the cxl-test module fails depmod. > It causes depmod to be invoked from the incorrect place > (or something doesn't respect INSTALL_MOD_PATH) > > Is there something additional that this cxl-test module needs > to do? > > Repro: > /git/new$ make V=1 M=tools/testing/cxl INSTALL_MOD_PATH=qbuild/mkosi.extra/ modules_install Kbuild changes the working directory, so you need to specify an absolute path for INSTALL_MOD_PATH. INSTALL_MOD_PATH=$(realpath qbuild/mkosi.extra/) -- Best Regards Masahiro Yamada