From: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
To: Bruce Ashfield <bruce.ashfield@windriver.com>,
"richard.purdie@linuxfoundation.org"
<richard.purdie@linuxfoundation.org>
Cc: "openembedded-core@lists.openembedded.org"
<openembedded-core@lists.openembedded.org>
Subject: Re: [RFC][PATCH 12/12] make-mod-scripts: change how some kernel module tools are built
Date: Thu, 15 Feb 2018 20:12:15 +0000 [thread overview]
Message-ID: <1cd76e22c50541db9bc2cfdccf5444a8@XBOX02.axis.com> (raw)
In-Reply-To: <f277f872c728ed18709c58e88e26a3fc81f23663.1516973739.git.bruce.ashfield@windriver.com>
> -----Original Message-----
> From: openembedded-core-bounces@lists.openembedded.org
> [mailto:openembedded-core-bounces@lists.openembedded.org] On Behalf Of
> Bruce Ashfield
> Sent: den 26 januari 2018 14:59
> To: richard.purdie@linuxfoundation.org
> Cc: openembedded-core@lists.openembedded.org
> Subject: [OE-core] [RFC][PATCH 12/12] make-mod-scripts: change how some
> kernel module tools are built
>
> From: Joe Slater <jslater@windriver.com>
>
> Remove do_make_scripts() from module-base.bbclass and put
> functionality in a recipe. This will build the scripts only
> once instead of each time an external module is built.
>
> [YOCTO #12228]
>
> Signed-off-by: Joe Slater <jslater@windriver.com>
> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
> ---
> meta/classes/module-base.bbclass | 12 +++--------
> meta/classes/module.bbclass | 4 ----
> .../make-mod-scripts/make-mod-scripts_1.0.bb | 24
> ++++++++++++++++++++++
> 3 files changed, 27 insertions(+), 13 deletions(-)
> create mode 100644 meta/recipes-kernel/make-mod-scripts/make-mod-
> scripts_1.0.bb
>
> diff --git a/meta/classes/module-base.bbclass b/meta/classes/module-
> base.bbclass
> index 6fe77c01b7ed..d6762a7dffd8 100644
> --- a/meta/classes/module-base.bbclass
> +++ b/meta/classes/module-base.bbclass
> @@ -1,7 +1,8 @@
> inherit kernel-arch
>
> -# This is instead of DEPENDS = "virtual/kernel"
> -do_configure[depends] += "virtual/kernel:do_compile_kernelmodules"
> +# We do the dependency this way because the output is not preserved
> +# in sstate, so we must force do_compile to run (once).
> +do_configure[depends] += "make-mod-scripts:do_compile"
>
> export OS = "${TARGET_OS}"
> export CROSS_COMPILE = "${TARGET_PREFIX}"
> @@ -18,10 +19,3 @@ KERNEL_OBJECT_SUFFIX = ".ko"
> # kernel modules are generally machine specific
> PACKAGE_ARCH = "${MACHINE_ARCH}"
>
> -# Function to ensure the kernel scripts are created. Expected to
> -# be called before do_compile. See module.bbclass for an example.
> -do_make_scripts() {
> - unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
> - make CC="${KERNEL_CC}" LD="${KERNEL_LD}" AR="${KERNEL_AR}" \
> - -C ${STAGING_KERNEL_DIR}
> O=${STAGING_KERNEL_BUILDDIR} scripts
> -}
> diff --git a/meta/classes/module.bbclass b/meta/classes/module.bbclass
> index 78d1b21dbd83..e34496024434 100644
> --- a/meta/classes/module.bbclass
> +++ b/meta/classes/module.bbclass
> @@ -1,9 +1,5 @@
> inherit module-base kernel-module-split pkgconfig
>
> -addtask make_scripts after do_prepare_recipe_sysroot before
> do_configure
> -do_make_scripts[lockfiles] = "${TMPDIR}/kernel-scripts.lock"
> -do_make_scripts[depends] += "virtual/kernel:do_shared_workdir"
> -
> EXTRA_OEMAKE += "KERNEL_SRC=${STAGING_KERNEL_DIR}"
>
> MODULES_INSTALL_TARGET ?= "modules_install"
> diff --git a/meta/recipes-kernel/make-mod-scripts/make-mod-
> scripts_1.0.bb b/meta/recipes-kernel/make-mod-scripts/make-mod-
> scripts_1.0.bb
> new file mode 100644
> index 000000000000..6645c873f015
> --- /dev/null
> +++ b/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb
> @@ -0,0 +1,24 @@
> +SUMMARY = "Build tools needed by external modules"
> +LICENSE = "GPLv2"
> +
> +inherit kernel-arch
This recipe needs to inherit pkgconfig as well (since pkg-config is used
when building kconfig as part of the kernel scripts).
> +
> +S = "${WORKDIR}"
> +
> +do_configure[depends] += "virtual/kernel:do_shared_workdir"
> +do_compile[depends] += "virtual/kernel:do_compile_kernelmodules"
> +
> +# Build some host tools under work-shared. CC, LD, and AR are probably
> +# not used, but this is the historical way of invoking "make scripts".
> +#
> +do_configure() {
> + unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
> + make CC="${KERNEL_CC}" LD="${KERNEL_LD}" AR="${KERNEL_AR}" \
> + -C ${STAGING_KERNEL_DIR} O=${STAGING_KERNEL_BUILDDIR} scripts
> +}
> +
> +
> +# There is no reason to build this on its own.
> +#
> +EXCLUDE_FROM_WORLD = "1"
> +
> --
> 2.5.0
//Peter
next prev parent reply other threads:[~2018-02-15 20:12 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-26 13:59 [PATCH 00/12] kernel-yocto: consolidated pull request Bruce Ashfield
2018-01-26 13:59 ` [PATCH 01/12] linux-yocto/4.9: update to v4.9.71 Bruce Ashfield
2018-01-26 13:59 ` [PATCH 02/12] linux-yocto/4.9: fix aufs build Bruce Ashfield
2018-01-26 13:59 ` [PATCH 03/12] linux-yocto/4.4: update to 4.4.99 Bruce Ashfield
2018-01-26 13:59 ` [PATCH 04/12] linux-yocto/4.12: CQM and rdt backports Bruce Ashfield
2018-01-26 13:59 ` [PATCH 05/12] linux-yocto/4.12: coffeeLake-s graphics and audio support Bruce Ashfield
2018-01-26 13:59 ` [PATCH 06/12] linux-yocto/4.12: drm & mips fixes Bruce Ashfield
2018-01-26 13:59 ` [PATCH 07/12] kernel-yocto: make SRC_URI defconfig removal more specific Bruce Ashfield
2018-01-26 13:59 ` [PATCH 08/12] linux-yocto/4.12: iwlwifi and pci id backports Bruce Ashfield
2018-01-26 13:59 ` [PATCH 09/12] linux-yocto/4.4: update to v4.4.113 Bruce Ashfield
2018-01-26 13:59 ` [PATCH 10/12] linux-yocto/4.9: update to v4.9.78 Bruce Ashfield
2018-01-26 13:59 ` [PATCH 11/12] linux-yocto/4.12: update to v4.12.19 Bruce Ashfield
2018-01-26 13:59 ` [RFC][PATCH 12/12] make-mod-scripts: change how some kernel module tools are built Bruce Ashfield
2018-02-15 20:12 ` Peter Kjellerstedt [this message]
2018-02-16 16:16 ` Bruce Ashfield
2018-01-26 14:32 ` ✗ patchtest: failure for kernel-yocto: consolidated pull request Patchwork
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=1cd76e22c50541db9bc2cfdccf5444a8@XBOX02.axis.com \
--to=peter.kjellerstedt@axis.com \
--cc=bruce.ashfield@windriver.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=richard.purdie@linuxfoundation.org \
/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.