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

Thomas Weißschuh
2024-08-24T12:33:41Z

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.

Thanks,
Thomas