From: Martin Jansa <martin.jansa@gmail.com>
To: Richard Purdie <richard.purdie@linuxfoundation.org>
Cc: openembedded-core <openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH] classes: Be consistent about sstate-inputdirs/outputdirs ending with '/'
Date: Wed, 14 Nov 2012 16:22:06 +0100 [thread overview]
Message-ID: <20121114152206.GO3928@jama.jama.net> (raw)
In-Reply-To: <20121114150945.GN3928@jama.jama.net>
[-- Attachment #1: Type: text/plain, Size: 5111 bytes --]
On Wed, Nov 14, 2012 at 04:09:45PM +0100, Martin Jansa wrote:
> On Tue, Nov 13, 2012 at 02:05:00PM +0000, Richard Purdie wrote:
> > If sstate-inputdirs and sstate-outputdirs don't match with ending '/'
> > characters, the manifest file can end up corrupted. This change
> > ensures the metadata is consistent in ending do_populate_root tasks
> > with this character to avoid manifest file corruption.
> >
> > diff --git a/meta/recipes-devtools/gcc/gcc-cross-initial.inc b/meta/recipes-devtools/gcc/gcc-cross-initial.inc
> > index ff6556c..1ac1db6 100644
> > --- a/meta/recipes-devtools/gcc/gcc-cross-initial.inc
> > +++ b/meta/recipes-devtools/gcc/gcc-cross-initial.inc
> > @@ -74,6 +74,6 @@ sysroot_stage_all() {
> > mv ${SYSROOT_DESTDIR}${target_libdir}/* ${SYSROOT_DESTDIR}${STAGING_DIR_TARGET}${target_libdir}/ || true
> > }
> >
> > -do_populate_sysroot[sstate-inputdirs] = "${SYSROOT_DESTDIR}/${STAGING_DIR_HOST} ${SYSROOT_DESTDIR}/${STAGING_DIR_TARGET}/${target_base_libdir}"
> > -do_populate_sysroot[sstate-outputdirs] = "${STAGING_DIR_HOST} ${STAGING_DIR_TCBOOTSTRAP}/${target_base_libdir}"
> > +do_populate_sysroot[sstate-inputdirs] = "${SYSROOT_DESTDIR}/${STAGING_DIR_HOST}/ ${SYSROOT_DESTDIR}/${STAGING_DIR_TARGET}/${target_base_libdir}/"
> > +do_populate_sysroot[sstate-outputdirs] = "${STAGING_DIR_HOST}/ ${STAGING_DIR_TCBOOTSTRAP}/${target_base_libdir}/"
>
> Not sure if it can be caused by this, but building from scratch fails
> today with:
>
with some added debug output it looks like trying to move the same directory twice:
WARNING: Moving
/OE/oe-core/tmp-eglibc/work/x86_64-oe-linux/gcc-cross-initial-4.7.2-r13/sstate-install-populate-sysroot/
to
/OE/oe-core/tmp-eglibc/work/x86_64-oe-linux/gcc-cross-initial-4.7.2-r13/sysroot-destdir///OE/oe-core/tmp-eglibc/sysroots/x86_64-linux/
WARNING: Moving
/OE/oe-core/tmp-eglibc/work/x86_64-oe-linux/gcc-cross-initial-4.7.2-r13/sstate-install-populate-sysroot/
to
/OE/oe-core/tmp-eglibc/work/x86_64-oe-linux/gcc-cross-initial-4.7.2-r13/sysroot-destdir///OE/oe-core/tmp-eglibc/sysroots/qemux86-64//lib/
ERROR: Error executing a python function in
/OE/oe-core/openembedded-core/meta/recipes-devtools/gcc/gcc-cross-initial_4.7.bb:
Cheers,
> NOTE: Running setscene task 430 of 457 (/OE/oe-core/openembedded-core/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_3.4.3.bb, do_populate_sysroot_setscene)
> ERROR: Error executing a python function in /OE/oe-core/openembedded-core/meta/recipes-devtools/gcc/gcc-cross-initial_4.7.bb:
> OSError: [Errno 2] No such file or directory
>
> ERROR: The stack trace of python calls that resulted in this exception/failure was:
> ERROR: File "do_populate_sysroot_setscene", line 6, in <module>
> ERROR:
> ERROR: File "do_populate_sysroot_setscene", line 3, in do_populate_sysroot_setscene
> ERROR:
> ERROR: File "sstate.bbclass", line 3, in sstate_setscene
> ERROR:
> ERROR: File "sstate.bbclass", line 63, in sstate_installpkg
> ERROR:
> ERROR: The code that was being executed was:
> ERROR: 0002:def do_populate_sysroot_setscene(d):
> ERROR: 0003: sstate_setscene(d)
> ERROR: 0004:
> ERROR: 0005:
> ERROR: *** 0006:do_populate_sysroot_setscene(d)
> ERROR: 0007:
> ERROR: [From file: 'do_populate_sysroot_setscene', lineno: 6, function: <module>]
> ERROR: 0001:
> ERROR: 0002:def do_populate_sysroot_setscene(d):
> ERROR: *** 0003: sstate_setscene(d)
> ERROR: 0004:
> ERROR: 0005:
> ERROR: 0006:do_populate_sysroot_setscene(d)
> ERROR: 0007:
> ERROR: [From file: 'do_populate_sysroot_setscene', lineno: 3, function: do_populate_sysroot_setscene]
> ERROR: 0001:def sstate_setscene(d):
> ERROR: 0002: shared_state = sstate_state_fromvars(d)
> ERROR: *** 0003: accelerate = sstate_installpkg(shared_state, d)
> ERROR: 0004: if not accelerate:
> ERROR: 0005: raise bb.build.FuncFailed("No suitable staging package found")
> ERROR: 0006:
> ERROR: [From file: 'sstate.bbclass', lineno: 3, function: sstate_setscene]
> ERROR: 0059: os.remove(fixmefn)
> ERROR: 0060:
> ERROR: 0061: for state in ss['dirs']:
> ERROR: 0062: prepdir(state[1])
> ERROR: *** 0063: os.rename(sstateinst + state[0], state[1])
> ERROR: 0064: sstate_install(ss, d)
> ERROR: 0065:
> ERROR: 0066: for plain in ss['plaindirs']:
> ERROR: 0067: workdir = d.getVar('WORKDIR', True)
> ERROR: [From file: 'sstate.bbclass', lineno: 63, function: sstate_installpkg]
> NOTE: recipe gcc-cross-initial-4.7.2-r13: task do_populate_sysroot_setscene: Failed
> WARNING: Setscene task 92 (/OE/oe-core/openembedded-core/meta/recipes-devtools/gcc/gcc-cross-initial_4.7.bb, do_populate_sysroot_setscene) failed with exit co
> de '1' - real task will be run instead
>
> It's not fatal, but it wasn't there yesterday AFAIK.
>
> Cheers,
> --
> Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]
next prev parent reply other threads:[~2012-11-14 15:35 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-13 14:05 [PATCH] classes: Be consistent about sstate-inputdirs/outputdirs ending with '/' Richard Purdie
2012-11-14 15:09 ` Martin Jansa
2012-11-14 15:22 ` Martin Jansa [this message]
2012-11-14 15:59 ` Richard Purdie
2012-11-14 17:25 ` McClintock Matthew-B29882
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=20121114152206.GO3928@jama.jama.net \
--to=martin.jansa@gmail.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.