[OE-core] [PATCH 2/3] module.bbclass: Add KERNEL_SRC in EXTRA_OEMAKE

Bruce Ashfield bruce.ashfield at gmail.com
Wed Jan 7 18:45:26 UTC 2015


On Wed, Jan 7, 2015 at 12:25 PM, Otavio Salvador
<otavio at ossystems.com.br> wrote:
> When the sstate hash changes for do_configure task, the do_configure
> default implementation triggers the 'clean' to be run. For it to
> succeed we need to have KERNEL_SRC defined in EXTRA_OEMAKE. Fixes
> following error:

I wanted to reproduce this locally, since I've never seen the problem
myself.

What's the best way to trigger the sstate hash change ?

I also have a question below ...

>
> ,----
> | DEBUG: Executing shell function do_configure
> | NOTE: make -e MAKEFLAGS= clean
> | make -C  M=.../tmp/work/... clean
> | make[1]: *** M=.../tmp/work/...: No such file or directory.  Stop.
> | Makefile:20: recipe for target 'clean' failed
> | make: *** [clean] Error 2
> | ERROR: oe_runmake failed
> `----
>
> Signed-off-by: Otavio Salvador <otavio at ossystems.com.br>
> ---
>  meta/classes/module.bbclass | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/meta/classes/module.bbclass b/meta/classes/module.bbclass
> index ad6f7af..5cb8623 100644
> --- a/meta/classes/module.bbclass
> +++ b/meta/classes/module.bbclass
> @@ -6,10 +6,11 @@ addtask make_scripts after do_patch before do_compile
>  do_make_scripts[lockfiles] = "${TMPDIR}/kernel-scripts.lock"
>  do_make_scripts[deptask] = "do_populate_sysroot"
>
> +EXTRA_OEMAKE += "KERNEL_SRC=${STAGING_KERNEL_DIR}"
> +

I'm not seeing very well at the moment and my ability to browse the code
is restricted, so bear with a potentially stupid question.

It's clear from the error message above why this is needed, but I'm not
seeing the code that is respecting/using KERNEL_SRC to trigger the
clean in the right directory. Where exactly is this being used (I know your
related base.bbclass change will pull in the extra make args, but I'm just
not seeing the Makefile that respects it).

Basically, I'm trying to decide if it would be better to handle this all in
the module class, and add a do_configure to the do_compile and
do_install we already have.

Since I'm not seeing it, others might not as well .. and we can enhance the
comments to make it clear.

Bruce

>  module_do_compile() {
>         unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
>         oe_runmake KERNEL_PATH=${STAGING_KERNEL_DIR}   \
> -                  KERNEL_SRC=${STAGING_KERNEL_DIR}    \
>                    KERNEL_VERSION=${KERNEL_VERSION}    \
>                    CC="${KERNEL_CC}" LD="${KERNEL_LD}" \
>                    AR="${KERNEL_AR}" \
> @@ -19,7 +20,6 @@ module_do_compile() {
>  module_do_install() {
>         unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
>         oe_runmake DEPMOD=echo INSTALL_MOD_PATH="${D}" \
> -                  KERNEL_SRC=${STAGING_KERNEL_DIR} \
>                    CC="${KERNEL_CC}" LD="${KERNEL_LD}" \
>                    modules_install
>  }
> --
> 2.1.4
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at 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"



More information about the Openembedded-core mailing list