Re: [PATCH 3/4] kbuild: slim down package for building external modules

Masahiro Yamada
2024-08-24T16:59:23Z

On Sat, Aug 24, 2024 at 9:27 PM Thomas Weißschuh <thomas@t-8ch.de> wrote:
>
> Hi Masahiro,
>
> On 2024-07-27 16:42:03+0000, Masahiro Yamada wrote:
> > Exclude directories and files unnecessary for building external modules:
> >
> > - include/config/ (except include/config/auto.conf)
> > - scripts/atomic/
> > - scripts/dtc/
> > - scripts/kconfig/
> > - scripts/mod/mk_elfconfig
> > - scripts/package/
> > - scripts/unifdef
> > - .config
> > - *.o
> > - .*.cmd
> >
> > Avoid copying files twice for the following directories:
> >
> > - include/generated/
> > - arch/*/include/generated/
> >
> > Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> > ---
> >
> > scripts/package/install-extmod-build | 20 +++++++++++++++-----
> > 1 file changed, 15 insertions(+), 5 deletions(-)
> >
> > diff --git a/scripts/package/install-extmod-build b/scripts/package/install-extmod-build
> > index 8cc9e13403ae..cc335945dfbc 100755
> > --- a/scripts/package/install-extmod-build
> > +++ b/scripts/package/install-extmod-build
> > @@ -9,15 +9,22 @@ is_enabled() {
> > grep -q "^$1=y" include/config/auto.conf
> > }
> >
> > +find_in_scripts() {
> > + find scripts \
> > + \( -name atomic -o -name dtc -o -name kconfig -o -name package \) -prune -o \
> > + ! -name unifdef -a ! -name mk_elfconfig -a \( -type f -o -type l \) -print
> > +}
> > +
> > mkdir -p "${destdir}"
> >
> > (
> > cd "${srctree}"
> > echo Makefile
> > find "arch/${SRCARCH}" -maxdepth 1 -name 'Makefile*'
> > - find include scripts -type f -o -type l
> > + find "arch/${SRCARCH}" -name generated -prune -o -name include -type d -print
> > find "arch/${SRCARCH}" -name Kbuild.platforms -o -name Platform
> > - find "arch/${SRCARCH}" -name include -type d
> > + find include \( -name config -o -name generated \) -prune -o \( -type f -o -type l \) -print
> > + find_in_scripts
> > ) | tar -c -f - -C "${srctree}" -T - | tar -xf - -C "${destdir}"
> >
> > {
> > @@ -25,12 +32,15 @@ mkdir -p "${destdir}"
> > echo tools/objtool/objtool
> > fi
> >
> > - find "arch/${SRCARCH}/include" Module.symvers include scripts -type f
> > + echo Module.symvers
> > + echo "arch/${SRCARCH}/include/generated"
> > + echo include/config/auto.conf
> > + echo include/generated
> > + find_in_scripts
>
> This now excludes include/config/kernel.release which is used to set
> KERNELRELEASE, which is commonly used by Makefiles.
> See Documentation/kbuild/modules.txt, other users also seem not unlikely.
>
> IMO this specific file should be added back.

Agree.

I fixed it up locally. Thanks for the report.

--
Best Regards
Masahiro Yamada