On 9. Dec 2024, at 14:46, Thorsten Blum wrote: > On 10. Nov 2024, at 02:34, 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> >> --- > > Hi Masahiro, > > I get the following error since this patch is in master, but only when > using COCCI= in combination with M=<relative or absolute path>. > > It works when I either use COCCI= or M=, but not with both. Using the absolute path of the cocci script fixes my problem, but this used to work with relative paths too. $ make coccicheck COCCI=$(pwd)/scripts/coccinelle/misc/flexible_array.cocci M=arch/ Thanks, Thorsten