[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1116D946-05F3-4463-A61F-DE221F258A3F@linux.dev>
Date: Mon, 9 Dec 2024 14:55:44 +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 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@...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.
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
Powered by blists - more mailing lists