[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <82FA2E02-05A5-4297-B364-9D7D89001D9D@linux.dev>
Date: Mon, 9 Dec 2024 14:46:56 +0100
From: Thorsten Blum <thorsten.blum@...ux.dev>
To: Masahiro Yamada <masahiroy@...nel.org>
Cc: linux-kbuild@...r.kernel.org,
linux-kernel@...r.kernel.org,
rust-for-linux@...r.kernel.org,
cocci@...ia.fr
Subject: Re: [PATCH v2 05/11] kbuild: change working directory to external
module directory with M=
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@...nel.org>
> ---
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.
$ make coccicheck COCCI=scripts/coccinelle/misc/flexible_array.cocci M=arch/
make[1]: Entering directory '/home/fedora/linux/arch'
You have not explicitly specified the mode to use. Using default "report" mode.
Available modes are the following: patch, report, context, org, chain
You can specify the mode with "make coccicheck MODE=<mode>"
Note however that some modes are not implemented by some semantic patches.
Please check for false positives in the output before submitting a patch.
When using "patch" mode, carefully review the patch before submitting it.
grep: scripts/coccinelle/misc/flexible_array.cocci: No such file or directory
grep: scripts/coccinelle/misc/flexible_array.cocci: No such file or directory
/usr/bin/spatch -D report --no-show-diff --very-quiet --cocci-file scripts/coccinelle/misc/flexible_array.cocci --patch /home/fedora/linux --dir . -I /home/fedora/linux/arch/arm64/include -I /home/fedora/linux/arch/arm64/include/generated -I /home/fedora/linux/include -I /home/fedora/linux/include -I /home/fedora/linux/arch/arm64/include/uapi -I /home/fedora/linux/arch/arm64/include/generated/uapi -I /home/fedora/linux/include/uapi -I /home/fedora/linux/include/generated/uapi --include /home/fedora/linux/include/linux/compiler-version.h --include /home/fedora/linux/include/linux/kconfig.h --jobs 4 --chunksize 1
Fatal error: exception Sys_error("scripts/coccinelle/misc/flexible_array.cocci: No such file or directory")
coccicheck failed
make[2]: *** [/home/fedora/linux/Makefile:2089: coccicheck] Error 2
make[1]: *** [/home/fedora/linux/Makefile:251: __sub-make] Error 2
make[1]: Leaving directory '/home/fedora/linux/arch'
make: *** [Makefile:251: __sub-make] Error 2
Thanks,
Thorsten
Powered by blists - more mailing lists