All of lore.kernel.org
 help / color / mirror / Atom feed
From: Masahiro Yamada <masahiroy@kernel.org>
To: Quentin Perret <qperret@google.com>
Cc: Nicolas Pitre <nico@fluxnic.net>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Linux Kbuild mailing list <linux-kbuild@vger.kernel.org>,
	Matthias Maennich <maennich@google.com>,
	"Cc: Android Kernel" <kernel-team@android.com>,
	Jessica Yu <jeyu@kernel.org>,
	Christoph Hellwig <hch@infradead.org>
Subject: Re: [PATCH v3 3/3] kbuild: generate autoksyms.h early
Date: Sat, 8 Feb 2020 06:09:06 +0100	[thread overview]
Message-ID: <CAK7LNAT+Xw8ntYcrcMtLrekkgziaHU+7nvzdh5tqD0cbe8pJhw@mail.gmail.com> (raw)
In-Reply-To: <20200207180755.100561-4-qperret@google.com>

On Fri, Feb 7, 2020 at 7:08 PM Quentin Perret <qperret@google.com> wrote:
>
> When doing a cold build, autoksyms.h starts empty, and is updated late
> in the build process to have visibility over the symbols used by in-tree
> drivers. But since the symbol whitelist is known upfront, it can be used
> to pre-populate autoksyms.h and maximize the amount of code that can be
> compiled to its final state in a single pass, hence reducing build time.
>
> Do this by using gen_autoksyms.sh to initialize autoksyms.h instead of
> creating an empty file.
>
> Signed-off-by: Quentin Perret <qperret@google.com>
> ---
>  Makefile                 | 2 +-
>  scripts/gen_autoksyms.sh | 3 ++-
>  2 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 6a01b073915e..e5c389d189f7 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1065,7 +1065,7 @@ autoksyms_h := $(if $(CONFIG_TRIM_UNUSED_KSYMS), include/generated/autoksyms.h)
>
>  $(autoksyms_h):
>         $(Q)mkdir -p $(dir $@)
> -       $(Q)touch $@
> +       $(Q)$(CONFIG_SHELL) $(srctree)/scripts/gen_autoksyms.sh $@


Now that this line is doing a non-trivial task,
it might be a good idea to show a short log, like this:

  GEN     include/generated/autoksyms.h



You can do it like this:


quiet_cmd_autoksyms_h = GEN     $@
      cmd_autoksyms_h = mkdir -p $(dir $@); $(BASH)
$(srctree)/scripts/gen_autoksyms.sh $@

$(autoksyms_h):
        $(call cmd,autoksyms_h)





>
>  ARCH_POSTLINK := $(wildcard $(srctree)/arch/$(SRCARCH)/Makefile.postlink)
>
> diff --git a/scripts/gen_autoksyms.sh b/scripts/gen_autoksyms.sh
> index ce0919c3791a..ae033ab03a4a 100755
> --- a/scripts/gen_autoksyms.sh
> +++ b/scripts/gen_autoksyms.sh
> @@ -32,7 +32,8 @@ cat > "$output_file" << EOT
>
>  EOT
>
> -sed 's/ko$/mod/' modules.order |
> +[[ -f modules.order ]] && modlist=modules.order || modlist=/dev/null
> +sed 's/ko$/mod/' $modlist |
>  xargs -n1 sed -n -e '2{s/ /\n/g;/^$/!p;}' -- |
>  cat - "$ksym_wl" |
>  sort -u |
> --
> 2.25.0.341.g760bfbb309-goog
>


--
Best Regards

Masahiro Yamada

  reply	other threads:[~2020-02-08  5:09 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-07 18:07 [PATCH v3 0/3] kbuild: allow symbol whitelisting with TRIM_UNUSED_KSYM Quentin Perret
2020-02-07 18:07 ` [PATCH v3 1/3] kbuild: allow symbol whitelisting with TRIM_UNUSED_KSYMS Quentin Perret
2020-02-07 18:22   ` Nicolas Pitre
2020-02-11  5:41     ` Quentin Perret
2020-02-08  5:05   ` Masahiro Yamada
2020-02-11  5:44     ` Quentin Perret
2020-02-07 18:07 ` [PATCH v3 2/3] kbuild: split adjust_autoksyms.sh in two parts Quentin Perret
2020-02-08  5:08   ` Masahiro Yamada
2020-02-11  5:45     ` Quentin Perret
2020-02-07 18:07 ` [PATCH v3 3/3] kbuild: generate autoksyms.h early Quentin Perret
2020-02-08  5:09   ` Masahiro Yamada [this message]
2020-02-11  5:46     ` Quentin Perret
2020-02-11  2:14   ` kbuild test robot
2020-02-11  2:14     ` kbuild test robot
2020-02-11  2:14     ` kbuild test robot
2020-02-12 19:56     ` Quentin Perret
2020-02-12 19:56       ` Quentin Perret
2020-02-13  8:46       ` kernel test robot
2020-02-13 18:07         ` [kbuild-all] " Quentin Perret
2020-02-13 18:07           ` Quentin Perret

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAK7LNAT+Xw8ntYcrcMtLrekkgziaHU+7nvzdh5tqD0cbe8pJhw@mail.gmail.com \
    --to=masahiroy@kernel.org \
    --cc=hch@infradead.org \
    --cc=jeyu@kernel.org \
    --cc=kernel-team@android.com \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maennich@google.com \
    --cc=nico@fluxnic.net \
    --cc=qperret@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.