lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAK7LNARi9t1mtUAW=X7bxiR_xWzaXX+Tq4dd8FfXW+LSm6o=ww@mail.gmail.com>
Date: Wed, 11 Dec 2024 11:36:48 +0900
From: Masahiro Yamada <masahiroy@...nel.org>
To: Thorsten Blum <thorsten.blum@...ux.dev>
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 Tue, Dec 10, 2024 at 8:06 PM Thorsten Blum <thorsten.blum@...ux.dev> wrote:
>
> On 10. Dec 2024, at 11:47, Masahiro Yamada wrote:
> > On Mon, Dec 9, 2024 at 10:56 PM Thorsten Blum 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@...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/
> >
> > M= looks a bit weird for the upstream code, but
> > I think using the absolute path is the right thing to do.
>
> The documentation[1] uses M= and also COCCI= with relative paths and
> some of the examples don't work anymore.

I know.

This is what cocci people hoped to work.

If something is broken in coccicheck, it must be fixed.




-- 
Best Regards
Masahiro Yamada

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ