[rocko] module-base.bbclass: fix out-of-tree module builds with custom EXTRA_OEMAKE

Message ID 1534382547-55346-1-git-send-email-denis@denix.org
State New
Headers show
Series
  • [rocko] module-base.bbclass: fix out-of-tree module builds with custom EXTRA_OEMAKE
Related show

Commit Message

Denys Dmytriyenko Aug. 16, 2018, 1:22 a.m.
From: Denys Dmytriyenko <denys@ti.com>


Commit d2aa88a6a92985f21414fceea2dc0facbf7f8779 was meant to backport build
dependencies on bc-native and openssl-native, but it also changed execution
of do_make_scripts() from calling make directly to using oe_runmake. That
change was made in master/sumo as part of a separate make-mod-scripts recipe.

Unfortunately, that doesn't work here in rocko in the context of module-base
class, as it gets executed inside out-of-tree module environment. Quite often
those out-of-tree modules provide own Makefile with custom EXTRA_OEMAKE var
defined. But do_make_scripts() gets executed within STAGING_KERNEL_DIR and
cannot simply use custom EXTRA_OEMAKE set by a module.

Move back to calling make and passing HOSTCC/HOSTCPP directly w/o using
EXTRA_OEMAKE.

For more details please see:
http://lists.openembedded.org/pipermail/openembedded-core/2018-August/154189.html

Signed-off-by: Denys Dmytriyenko <denys@ti.com>

Cc: Bruce Ashfield <bruce.ashfield@windriver.com>
Cc: Richard Purdie <richard.purdie@linuxfoundation.org>
Cc: Anuj Mittal <anuj.mittal@intel.com>
Cc: Armin Kuster <akuster808@gmail.com>
---
 meta/classes/module-base.bbclass | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

-- 
2.7.4

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

Comments

akuster808 Aug. 16, 2018, 2:27 a.m. | #1
On 08/15/2018 06:22 PM, Denys Dmytriyenko wrote:
> From: Denys Dmytriyenko <denys@ti.com>

>

> Commit d2aa88a6a92985f21414fceea2dc0facbf7f8779 was meant to backport build

> dependencies on bc-native and openssl-native, but it also changed execution

> of do_make_scripts() from calling make directly to using oe_runmake. That

> change was made in master/sumo as part of a separate make-mod-scripts recipe.

>

> Unfortunately, that doesn't work here in rocko in the context of module-base

> class, as it gets executed inside out-of-tree module environment. Quite often

> those out-of-tree modules provide own Makefile with custom EXTRA_OEMAKE var

> defined. But do_make_scripts() gets executed within STAGING_KERNEL_DIR and

> cannot simply use custom EXTRA_OEMAKE set by a module.

>

> Move back to calling make and passing HOSTCC/HOSTCPP directly w/o using

> EXTRA_OEMAKE.


Got this stagged it my rocko mut branch for testing.
thanks
Armin
>

> For more details please see:

> http://lists.openembedded.org/pipermail/openembedded-core/2018-August/154189.html

>

> Signed-off-by: Denys Dmytriyenko <denys@ti.com>

> Cc: Bruce Ashfield <bruce.ashfield@windriver.com>

> Cc: Richard Purdie <richard.purdie@linuxfoundation.org>

> Cc: Anuj Mittal <anuj.mittal@intel.com>

> Cc: Armin Kuster <akuster808@gmail.com>

> ---

>  meta/classes/module-base.bbclass | 4 ++--

>  1 file changed, 2 insertions(+), 2 deletions(-)

>

> diff --git a/meta/classes/module-base.bbclass b/meta/classes/module-base.bbclass

> index 9f3465e..c1fa3ad 100644

> --- a/meta/classes/module-base.bbclass

> +++ b/meta/classes/module-base.bbclass

> @@ -13,7 +13,6 @@ export CROSS_COMPILE = "${TARGET_PREFIX}"

>  export KBUILD_OUTPUT = "${STAGING_KERNEL_BUILDDIR}"

>  

>  DEPENDS += "bc-native"

> -EXTRA_OEMAKE += " HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}""

>  

>  export KERNEL_VERSION = "${@base_read_file('${STAGING_KERNEL_BUILDDIR}/kernel-abiversion')}"

>  KERNEL_OBJECT_SUFFIX = ".ko"

> @@ -25,6 +24,7 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"

>  # be called before do_compile. See module.bbclass for an example.

>  do_make_scripts() {

>  	unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS 

> -	oe_runmake CC="${KERNEL_CC}" LD="${KERNEL_LD}" AR="${KERNEL_AR}" \

> +	make CC="${KERNEL_CC}" LD="${KERNEL_LD}" AR="${KERNEL_AR}" \

> +	           HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}" \

>  	           -C ${STAGING_KERNEL_DIR} O=${STAGING_KERNEL_BUILDDIR} scripts prepare

>  }


-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Denys Dmytriyenko Aug. 24, 2018, 1:15 a.m. | #2
On Wed, Aug 15, 2018 at 07:27:50PM -0700, akuster808 wrote:
> 

> 

> On 08/15/2018 06:22 PM, Denys Dmytriyenko wrote:

> > From: Denys Dmytriyenko <denys@ti.com>

> >

> > Commit d2aa88a6a92985f21414fceea2dc0facbf7f8779 was meant to backport build

> > dependencies on bc-native and openssl-native, but it also changed execution

> > of do_make_scripts() from calling make directly to using oe_runmake. That

> > change was made in master/sumo as part of a separate make-mod-scripts recipe.

> >

> > Unfortunately, that doesn't work here in rocko in the context of module-base

> > class, as it gets executed inside out-of-tree module environment. Quite often

> > those out-of-tree modules provide own Makefile with custom EXTRA_OEMAKE var

> > defined. But do_make_scripts() gets executed within STAGING_KERNEL_DIR and

> > cannot simply use custom EXTRA_OEMAKE set by a module.

> >

> > Move back to calling make and passing HOSTCC/HOSTCPP directly w/o using

> > EXTRA_OEMAKE.

> 

> Got this stagged it my rocko mut branch for testing.


Ping


> thanks

> Armin

> >

> > For more details please see:

> > http://lists.openembedded.org/pipermail/openembedded-core/2018-August/154189.html

> >

> > Signed-off-by: Denys Dmytriyenko <denys@ti.com>

> > Cc: Bruce Ashfield <bruce.ashfield@windriver.com>

> > Cc: Richard Purdie <richard.purdie@linuxfoundation.org>

> > Cc: Anuj Mittal <anuj.mittal@intel.com>

> > Cc: Armin Kuster <akuster808@gmail.com>

> > ---

> >  meta/classes/module-base.bbclass | 4 ++--

> >  1 file changed, 2 insertions(+), 2 deletions(-)

> >

> > diff --git a/meta/classes/module-base.bbclass b/meta/classes/module-base.bbclass

> > index 9f3465e..c1fa3ad 100644

> > --- a/meta/classes/module-base.bbclass

> > +++ b/meta/classes/module-base.bbclass

> > @@ -13,7 +13,6 @@ export CROSS_COMPILE = "${TARGET_PREFIX}"

> >  export KBUILD_OUTPUT = "${STAGING_KERNEL_BUILDDIR}"

> >  

> >  DEPENDS += "bc-native"

> > -EXTRA_OEMAKE += " HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}""

> >  

> >  export KERNEL_VERSION = "${@base_read_file('${STAGING_KERNEL_BUILDDIR}/kernel-abiversion')}"

> >  KERNEL_OBJECT_SUFFIX = ".ko"

> > @@ -25,6 +24,7 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"

> >  # be called before do_compile. See module.bbclass for an example.

> >  do_make_scripts() {

> >  	unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS 

> > -	oe_runmake CC="${KERNEL_CC}" LD="${KERNEL_LD}" AR="${KERNEL_AR}" \

> > +	make CC="${KERNEL_CC}" LD="${KERNEL_LD}" AR="${KERNEL_AR}" \

> > +	           HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}" \

> >  	           -C ${STAGING_KERNEL_DIR} O=${STAGING_KERNEL_BUILDDIR} scripts prepare

> >  }

> 

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Denys Dmytriyenko Aug. 29, 2018, 2:39 a.m. | #3
On Thu, Aug 23, 2018 at 09:15:55PM -0400, Denys Dmytriyenko wrote:
> On Wed, Aug 15, 2018 at 07:27:50PM -0700, akuster808 wrote:

> > 

> > 

> > On 08/15/2018 06:22 PM, Denys Dmytriyenko wrote:

> > > From: Denys Dmytriyenko <denys@ti.com>

> > >

> > > Commit d2aa88a6a92985f21414fceea2dc0facbf7f8779 was meant to backport build

> > > dependencies on bc-native and openssl-native, but it also changed execution

> > > of do_make_scripts() from calling make directly to using oe_runmake. That

> > > change was made in master/sumo as part of a separate make-mod-scripts recipe.

> > >

> > > Unfortunately, that doesn't work here in rocko in the context of module-base

> > > class, as it gets executed inside out-of-tree module environment. Quite often

> > > those out-of-tree modules provide own Makefile with custom EXTRA_OEMAKE var

> > > defined. But do_make_scripts() gets executed within STAGING_KERNEL_DIR and

> > > cannot simply use custom EXTRA_OEMAKE set by a module.

> > >

> > > Move back to calling make and passing HOSTCC/HOSTCPP directly w/o using

> > > EXTRA_OEMAKE.

> > 

> > Got this stagged it my rocko mut branch for testing.

> 

> Ping


Ping again - are there any problems with this patch?


> > thanks

> > Armin

> > >

> > > For more details please see:

> > > http://lists.openembedded.org/pipermail/openembedded-core/2018-August/154189.html

> > >

> > > Signed-off-by: Denys Dmytriyenko <denys@ti.com>

> > > Cc: Bruce Ashfield <bruce.ashfield@windriver.com>

> > > Cc: Richard Purdie <richard.purdie@linuxfoundation.org>

> > > Cc: Anuj Mittal <anuj.mittal@intel.com>

> > > Cc: Armin Kuster <akuster808@gmail.com>

> > > ---

> > >  meta/classes/module-base.bbclass | 4 ++--

> > >  1 file changed, 2 insertions(+), 2 deletions(-)

> > >

> > > diff --git a/meta/classes/module-base.bbclass b/meta/classes/module-base.bbclass

> > > index 9f3465e..c1fa3ad 100644

> > > --- a/meta/classes/module-base.bbclass

> > > +++ b/meta/classes/module-base.bbclass

> > > @@ -13,7 +13,6 @@ export CROSS_COMPILE = "${TARGET_PREFIX}"

> > >  export KBUILD_OUTPUT = "${STAGING_KERNEL_BUILDDIR}"

> > >  

> > >  DEPENDS += "bc-native"

> > > -EXTRA_OEMAKE += " HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}""

> > >  

> > >  export KERNEL_VERSION = "${@base_read_file('${STAGING_KERNEL_BUILDDIR}/kernel-abiversion')}"

> > >  KERNEL_OBJECT_SUFFIX = ".ko"

> > > @@ -25,6 +24,7 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"

> > >  # be called before do_compile. See module.bbclass for an example.

> > >  do_make_scripts() {

> > >  	unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS 

> > > -	oe_runmake CC="${KERNEL_CC}" LD="${KERNEL_LD}" AR="${KERNEL_AR}" \

> > > +	make CC="${KERNEL_CC}" LD="${KERNEL_LD}" AR="${KERNEL_AR}" \

> > > +	           HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}" \

> > >  	           -C ${STAGING_KERNEL_DIR} O=${STAGING_KERNEL_BUILDDIR} scripts prepare

> > >  }

> > 

> -- 

> _______________________________________________

> Openembedded-core mailing list

> Openembedded-core@lists.openembedded.org

> http://lists.openembedded.org/mailman/listinfo/openembedded-core

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

Patch

diff --git a/meta/classes/module-base.bbclass b/meta/classes/module-base.bbclass
index 9f3465e..c1fa3ad 100644
--- a/meta/classes/module-base.bbclass
+++ b/meta/classes/module-base.bbclass
@@ -13,7 +13,6 @@  export CROSS_COMPILE = "${TARGET_PREFIX}"
 export KBUILD_OUTPUT = "${STAGING_KERNEL_BUILDDIR}"
 
 DEPENDS += "bc-native"
-EXTRA_OEMAKE += " HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}""
 
 export KERNEL_VERSION = "${@base_read_file('${STAGING_KERNEL_BUILDDIR}/kernel-abiversion')}"
 KERNEL_OBJECT_SUFFIX = ".ko"
@@ -25,6 +24,7 @@  PACKAGE_ARCH = "${MACHINE_ARCH}"
 # be called before do_compile. See module.bbclass for an example.
 do_make_scripts() {
 	unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS 
-	oe_runmake CC="${KERNEL_CC}" LD="${KERNEL_LD}" AR="${KERNEL_AR}" \
+	make CC="${KERNEL_CC}" LD="${KERNEL_LD}" AR="${KERNEL_AR}" \
+	           HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}" \
 	           -C ${STAGING_KERNEL_DIR} O=${STAGING_KERNEL_BUILDDIR} scripts prepare
 }