Re: [PATCH 5/7] kbuild: hide CONFIG_TRIM_UNUSED_KSYMS code from external module building
From: Nicolas Pitre
Date: Wed Mar 14 2018 - 14:34:20 EST
On Thu, 15 Mar 2018, Masahiro Yamada wrote:
> If CONFIG_TRIM_UNUSED_KYMS is enabled, KBUILD_MODULES is set.
Not when you do "make vmlinux" though.
> This code is unneeded for external module building because
> KBUILD_MODULES is always set. Move this code inside "ifeq
> ($(KBUILD_EXTMOD),)" conditional.
>
> Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
Acked-by: Nicolas Pitre <nico@xxxxxxxxxx>
> ---
>
> Makefile | 14 +++++++-------
> 1 file changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index decc870..e60b16f 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -603,13 +603,6 @@ else
> include/config/auto.conf: ;
> endif # $(dot-config)
>
> -# For the kernel to actually contain only the needed exported symbols,
> -# we have to build modules as well to determine what those symbols are.
> -# (this can be evaluated only once include/config/auto.conf has been included)
> -ifdef CONFIG_TRIM_UNUSED_KSYMS
> - KBUILD_MODULES := 1
> -endif
> -
> # The all: target is the default when no target is given on the
> # command line.
> # This allow a user to issue only 'make' to build a kernel including modules
> @@ -1010,6 +1003,13 @@ ifdef CONFIG_TRIM_UNUSED_KSYMS
> "$(MAKE) -f $(srctree)/Makefile vmlinux"
> endif
>
> +# For the kernel to actually contain only the needed exported symbols,
> A+# we have to build modules as well to determine what those symbols
are.
> +# (this can be evaluated only once include/config/auto.conf has been included)
> +ifdef CONFIG_TRIM_UNUSED_KSYMS
> + KBUILD_MODULES := 1
> +endif
> +
> autoksyms_h := $(if $(CONFIG_TRIM_UNUSED_KSYMS), include/generated/autoksyms.h)
>
> $(autoksyms_h):
> --
> 2.7.4
>
>