From: Will McVicker <willmcvicker@google.com>
To: Lucas De Marchi <lucas.demarchi@intel.com>,
Masahiro Yamada <masahiroy@kernel.org>,
Michal Marek <michal.lkml@markovi.net>,
Nick Desaulniers <ndesaulniers@google.com>
Cc: kernel-team@android.com, Will McVicker <willmcvicker@google.com>,
linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH v2 1/1] kbuild: install the modules.order for external modules
Date: Thu, 27 Jan 2022 01:00:08 +0000 [thread overview]
Message-ID: <20220127010009.2617569-1-willmcvicker@google.com> (raw)
Add support to install the modules.order file for external modules
during module_install in order to retain the Makefile ordering
of external modules. This helps reduce the extra steps necessary to
properly order loading of external modules when there are multiple
kernel modules compiled within a given KBUILD_EXTMOD directory.
To handle compiling multiple external modules within the same
INSTALL_MOD_DIR, kbuild will append a suffix to the installed
modules.order file defined like so:
echo "${KBUILD_EXTMOD}" | md5sum | cut -d " " -f 1
Example:
KBUILD_EXTMOD=/mnt/a.b/c-d/my_driver results in:
modules.order._mnt_a_b_c_d_my_driver
The installed module.order.$(extmod_suffix) files can then be appended
to the staging modules.order file which defines the order to load all of
the modules during boot.
Example:
cd $(MODLIB)
find extra/. -name modules.order.* -exec cat {} >> modules.order \;
Signed-off-by: Will McVicker <willmcvicker@google.com>
---
v2: Use md5sum to fix a "Filename too long" failure when KBUILD_EXTMOD
exceeds 241 characters.
scripts/Makefile.modinst | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/scripts/Makefile.modinst b/scripts/Makefile.modinst
index c2c43a0ecfe0..a6ef273d395f 100644
--- a/scripts/Makefile.modinst
+++ b/scripts/Makefile.modinst
@@ -24,6 +24,10 @@ suffix-$(CONFIG_MODULE_COMPRESS_XZ) := .xz
suffix-$(CONFIG_MODULE_COMPRESS_ZSTD) := .zst
modules := $(patsubst $(extmod_prefix)%, $(dst)/%$(suffix-y), $(modules))
+ifneq ($(KBUILD_EXTMOD),)
+extmod_suffix := $(shell echo "${KBUILD_EXTMOD}" | md5sum | cut -d " " -f 1)
+modules += $(dst)/modules.order.$(extmod_suffix)
+endif
__modinst: $(modules)
@:
@@ -82,6 +86,12 @@ $(dst)/%.ko: $(extmod_prefix)%.ko FORCE
$(call cmd,strip)
$(call cmd,sign)
+ifneq ($(KBUILD_EXTMOD),)
+$(dst)/modules.order.$(extmod_suffix): $(MODORDER) FORCE
+ $(call cmd,install)
+ @sed -i "s:^$(KBUILD_EXTMOD):$(INSTALL_MOD_DIR):g" $@
+endif
+
else
$(dst)/%.ko: FORCE
--
2.35.0.rc0.227.g00780c9af4-goog
reply other threads:[~2022-01-27 1:00 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=20220127010009.2617569-1-willmcvicker@google.com \
--to=willmcvicker@google.com \
--cc=kernel-team@android.com \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lucas.demarchi@intel.com \
--cc=masahiroy@kernel.org \
--cc=michal.lkml@markovi.net \
--cc=ndesaulniers@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.