On Mon, Dec 9, 2024 at 10:56 PM Thorsten Blum <thorsten.blum@xxxxxxxxx> wrote: > > 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/ M= looks a bit weird for the upstream code, but I think using the absolute path is the right thing to do. -- Best Regards Masahiro Yamada