All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/1] modules: move creation of some module related tools
@ 2017-07-21 17:13 Joe Slater
  2017-07-21 17:30 ` Bruce Ashfield
  0 siblings, 1 reply; 3+ messages in thread
From: Joe Slater @ 2017-07-21 17:13 UTC (permalink / raw)
  To: openembedded-core

Move creation of tools needed by module building recipes into
kernel.bbclass but invoke the task only from the module recipes.
Without this change, one module recipe can fail trying to use the
tools while another is (re-)building them.

Signed-off-by: Joe Slater <jslater@windriver.com>
---
 meta/classes/kernel.bbclass      | 15 +++++++++++++++
 meta/classes/module-base.bbclass | 10 ++--------
 meta/classes/module.bbclass      |  4 ----
 3 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index 7670c71..131387e 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -280,6 +280,11 @@ kernel_do_compile() {
 
 do_compile_kernelmodules() {
 	unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
+
+	# build modpost, etc
+	make CC="${KERNEL_CC}" LD="${KERNEL_LD}" AR="${KERNEL_AR}" \
+	           -C ${STAGING_KERNEL_DIR} O=${STAGING_KERNEL_BUILDDIR} scripts
+
 	if (grep -q -i -e '^CONFIG_MODULES=y$' ${B}/.config); then
 		oe_runmake -C ${B} ${PARALLEL_MAKE} modules CC="${KERNEL_CC}" LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS}
 
@@ -296,6 +301,16 @@ do_compile_kernelmodules() {
 }
 addtask compile_kernelmodules after do_compile before do_strip
 
+# Task to ensure the kernel scripts are created. Expected to be invoked
+# only by module building recipes. 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
+}
+addtask make_scripts after do_compile_kernelmodules
+do_make_scripts[lockfiles] = "${TMPDIR}/kernel-scripts.lock"
+
 kernel_do_install() {
 	#
 	# First install the modules
diff --git a/meta/classes/module-base.bbclass b/meta/classes/module-base.bbclass
index 6fe77c0..c1fe191 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"
+# do_make_scripts() used to be in here, but is now in kernel.bbclass
+do_configure[depends] += "virtual/kernel:do_make_scripts"
 
 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 391776d..e344960 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_compile
-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"
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/1] modules: move creation of some module related tools
  2017-07-21 17:13 [PATCH 1/1] modules: move creation of some module related tools Joe Slater
@ 2017-07-21 17:30 ` Bruce Ashfield
  2017-07-21 19:44   ` Slater, Joseph
  0 siblings, 1 reply; 3+ messages in thread
From: Bruce Ashfield @ 2017-07-21 17:30 UTC (permalink / raw)
  To: Joe Slater; +Cc: Patches and discussions about the oe-core layer

[-- Attachment #1: Type: text/plain, Size: 4614 bytes --]

On Fri, Jul 21, 2017 at 1:13 PM, Joe Slater <jslater@windriver.com> wrote:

> Move creation of tools needed by module building recipes into
> kernel.bbclass but invoke the task only from the module recipes.
> Without this change, one module recipe can fail trying to use the
> tools while another is (re-)building them.
>

You are changing some core code that has been protecting our builds for
quite some time .. yet, you have no example of the errors that are being
seen, and no proof that this actually fixes the problem (and that it doesn't
introduce other issues).

i.e. how are the lock files no protecting this in whatever is breaking for
you ?

Looking at the change, I'm not convinced it is the right thing to do.

i.e. putting something in kernel.bbclass that is only used by the modules
is less than ideal, without some sort of justification.

Bruce


>
> Signed-off-by: Joe Slater <jslater@windriver.com>
> ---
>  meta/classes/kernel.bbclass      | 15 +++++++++++++++
>  meta/classes/module-base.bbclass | 10 ++--------
>  meta/classes/module.bbclass      |  4 ----
>  3 files changed, 17 insertions(+), 12 deletions(-)
>
> diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
> index 7670c71..131387e 100644
> --- a/meta/classes/kernel.bbclass
> +++ b/meta/classes/kernel.bbclass
> @@ -280,6 +280,11 @@ kernel_do_compile() {
>
>  do_compile_kernelmodules() {
>         unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
> +
> +       # build modpost, etc
> +       make CC="${KERNEL_CC}" LD="${KERNEL_LD}" AR="${KERNEL_AR}" \
> +                  -C ${STAGING_KERNEL_DIR} O=${STAGING_KERNEL_BUILDDIR}
> scripts
> +
>         if (grep -q -i -e '^CONFIG_MODULES=y$' ${B}/.config); then
>                 oe_runmake -C ${B} ${PARALLEL_MAKE} modules
> CC="${KERNEL_CC}" LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS}
>
> @@ -296,6 +301,16 @@ do_compile_kernelmodules() {
>  }
>  addtask compile_kernelmodules after do_compile before do_strip
>
> +# Task to ensure the kernel scripts are created. Expected to be invoked
> +# only by module building recipes. 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
> +}
> +addtask make_scripts after do_compile_kernelmodules
> +do_make_scripts[lockfiles] = "${TMPDIR}/kernel-scripts.lock"
> +
>  kernel_do_install() {
>         #
>         # First install the modules
> diff --git a/meta/classes/module-base.bbclass b/meta/classes/module-base.
> bbclass
> index 6fe77c0..c1fe191 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"
> +# do_make_scripts() used to be in here, but is now in kernel.bbclass
> +do_configure[depends] += "virtual/kernel:do_make_scripts"
>
>  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 391776d..e344960 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_compile
> -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"
> --
> 2.7.4
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>



-- 
"Thou shalt not follow the NULL pointer, for chaos and madness await thee
at its end"

[-- Attachment #2: Type: text/html, Size: 6160 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/1] modules: move creation of some module related tools
  2017-07-21 17:30 ` Bruce Ashfield
@ 2017-07-21 19:44   ` Slater, Joseph
  0 siblings, 0 replies; 3+ messages in thread
From: Slater, Joseph @ 2017-07-21 19:44 UTC (permalink / raw)
  To: Bruce Ashfield; +Cc: Patches and discussions about the oe-core layer

[-- Attachment #1: Type: text/plain, Size: 7458 bytes --]

Below, is the error and a heavily edited log file.  For those in Wind River, the issue is LIN10-858.  Btw, there is duplicate script building code in my patch because I forgot to take it out of do_compile_kernelmodules() which is where I first moved it to.

Joe



  LD /home/wrlbuild/builds/builds-c23c9015-5785-4a83-8075-2a2fa9401ba3/wrlinux-std-sato_intel-skylake-avx512-64_world_10/tmp/work/intel_skylake_avx512_64-wrs-linux/hello-mod/0.1-r0/built-in.o
   CC [M] /home/wrlbuild/builds/builds-c23c9015-5785-4a83-8075-2a2fa9401ba3/wrlinux-std-sato_intel-skylake-avx512-64_world_10/tmp/work/intel_skylake_avx512_64-wrs-linux/hello-mod/0.1-r0/hello.o
   Building modules, stage 2.
   MODPOST 1 modules
 /bin/sh: scripts/mod/modpost: Permission denied
 make
 [3]: *** [/home/wrlbuild/builds/builds-c23c9015-5785-4a83-8075-2a2fa9401ba3/wrlinux-std-sato_intel-skylake-avx512-64_world_10/tmp/work-shared/intel-skylake-avx512-64/kernel-source/scripts/Makefile.modpost:91: __modpost] Error 126
 make[2]: *** [/home/wrlbuild/builds/builds-c23c9015-5785-4a83-8075-2a2fa9401ba3/wrlinux-std-sato_intel-skylake-avx512-64_world_10/tmp/work-shared/intel-skylake-avx512-64/kernel-source/Makefile:1475: modules] Error 2

(modpost is under work-shared)





 [2017-07-13 21:02:39.512674040-07:00] NOTE: recipe hello-mod-0.1-r0: task do_make_scripts: Started

 [2017-07-13 21:02:39.648216523-07:00] NOTE: recipe module-debug-example-0.99-r0: task do_make_scripts: Started

 [2017-07-13 21:02:44.190642236-07:00] NOTE: recipe hello-mod-0.1-r0: task do_configure: Started

 [2017-07-13 21:02:44.308167085-07:00] NOTE: recipe hello-mod-0.1-r0: task do_configure: Succeeded

 [2017-07-13 21:02:45.074545820-07:00] NOTE: recipe module-debug-example-0.99-r0: task do_configure: Started

 [2017-07-13 21:02:45.077889943-07:00] NOTE: recipe module-debug-example-0.99-r0: task do_configure: Succeeded

 [2017-07-13 21:02:59.371609194-07:00] NOTE: recipe hello-mod-0.1-r0: task do_make_scripts: Succeeded

 [2017-07-13 21:03:00.149468691-07:00] NOTE: recipe hello-mod-0.1-r0: task do_compile: Started

 [2017-07-13 21:03:02.840652134-07:00] ERROR: hello-mod-0.1-r0 do_compile: oe_runmake failed
 [2017-07-13 21:03:04.406712693-07:00] ERROR: hello-mod-0.1-r0 do_compile: Function failed: do_compile (log file is located at /home/wrlbuild/builds/builds-c23c9015-5785-4a83-8075-2a2fa9401ba3/wrlinux-std-sato_intel-skylake-avx512-64_world_10/tmp/work/intel_skylake_avx512_64-wrs-linux/hello-mod/0.1-r0/temp/log.do_compile.110776)

 [2017-07-13 21:03:04.407703129-07:00] NOTE: recipe module-debug-example-0.99-r0: task do_make_scripts: Succeeded






From: Bruce Ashfield [mailto:bruce.ashfield@gmail.com]
Sent: Friday, July 21, 2017 10:30 AM
To: Slater, Joseph
Cc: Patches and discussions about the oe-core layer
Subject: Re: [OE-core] [oe-core][PATCH 1/1] modules: move creation of some module related tools



On Fri, Jul 21, 2017 at 1:13 PM, Joe Slater <jslater@windriver.com<mailto:jslater@windriver.com>> wrote:
Move creation of tools needed by module building recipes into
kernel.bbclass but invoke the task only from the module recipes.
Without this change, one module recipe can fail trying to use the
tools while another is (re-)building them.

You are changing some core code that has been protecting our builds for
quite some time .. yet, you have no example of the errors that are being
seen, and no proof that this actually fixes the problem (and that it doesn't
introduce other issues).

i.e. how are the lock files no protecting this in whatever is breaking for you ?

Looking at the change, I'm not convinced it is the right thing to do.

i.e. putting something in kernel.bbclass that is only used by the modules
is less than ideal, without some sort of justification.

Bruce


Signed-off-by: Joe Slater <jslater@windriver.com<mailto:jslater@windriver.com>>
---
 meta/classes/kernel.bbclass      | 15 +++++++++++++++
 meta/classes/module-base.bbclass | 10 ++--------
 meta/classes/module.bbclass      |  4 ----
 3 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index 7670c71..131387e 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -280,6 +280,11 @@ kernel_do_compile() {

 do_compile_kernelmodules() {
        unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
+
+       # build modpost, etc
+       make CC="${KERNEL_CC}" LD="${KERNEL_LD}" AR="${KERNEL_AR}" \
+                  -C ${STAGING_KERNEL_DIR} O=${STAGING_KERNEL_BUILDDIR} scripts
+
        if (grep -q -i -e '^CONFIG_MODULES=y$' ${B}/.config); then
                oe_runmake -C ${B} ${PARALLEL_MAKE} modules CC="${KERNEL_CC}" LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS}

@@ -296,6 +301,16 @@ do_compile_kernelmodules() {
 }
 addtask compile_kernelmodules after do_compile before do_strip

+# Task to ensure the kernel scripts are created. Expected to be invoked
+# only by module building recipes. 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
+}
+addtask make_scripts after do_compile_kernelmodules
+do_make_scripts[lockfiles] = "${TMPDIR}/kernel-scripts.lock"
+
 kernel_do_install() {
        #
        # First install the modules
diff --git a/meta/classes/module-base.bbclass b/meta/classes/module-base.bbclass
index 6fe77c0..c1fe191 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"
+# do_make_scripts() used to be in here, but is now in kernel.bbclass
+do_configure[depends] += "virtual/kernel:do_make_scripts"

 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 391776d..e344960 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_compile
-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"
--
2.7.4

--
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org<mailto:Openembedded-core@lists.openembedded.org>
http://lists.openembedded.org/mailman/listinfo/openembedded-core



--
"Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end"

[-- Attachment #2: Type: text/html, Size: 14610 bytes --]

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-07-21 19:44 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-07-21 17:13 [PATCH 1/1] modules: move creation of some module related tools Joe Slater
2017-07-21 17:30 ` Bruce Ashfield
2017-07-21 19:44   ` Slater, Joseph

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.