From: "Yu, Mingli" <mingli.yu@windriver.com>
To: <openembedded-core@lists.openembedded.org>,
<richard.purdie@linuxfoundation.org>
Subject: Re: [PATCH] glibc/gcc/libgcc-initial: Reimplement "deltask do_build"
Date: Tue, 21 Nov 2017 16:37:58 +0800 [thread overview]
Message-ID: <5A13E5E6.1070805@windriver.com> (raw)
In-Reply-To: <20171121080054.8326-1-mingli.yu@windriver.com>
Please ignore this patch as the indentation is TAB, will send V2 to use
four space as indentation.
Thanks,
Mingli
On 2017年11月21日 16:00, mingli.yu@windriver.com wrote:
> From: Mingli Yu <Mingli.Yu@windriver.com>
>
> Previously, "deltask do_build" can result in the
> dependency of do_build lost and can trigger a
> race condition error as below when do_rm_work
> is enabled.
> =================================================
> NOTE: recipe glibc-initial-2.26-r0: task do_fetch: Failed
> ERROR: glibc-initial-2.26-r0 do_fetch: Function failed: extend_recipe_sysroot
> The stack trace of python calls that resulted in this exception/failure was:
> File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
> 0001:
> *** 0002:extend_recipe_sysroot(d)
> 0003:
> File: '$Prj/layers/oe-core/meta/classes/staging.bbclass', lineno: 410, function: extend_recipe_sysroot
> 0406: manifests = {}
> 0407: # All files that we're going to be installing, to find conflicts.
> 0408: fileset = {}
> 0409:
> *** 0410: for f in os.listdir(depdir):
> 0411: if not f.endswith(".complete"):
> 0412: continue
> 0413: f = depdir + "/" + f
> 0414: if os.path.islink(f) and not os.path.exists(f):
> Exception: FileNotFoundError: [Errno 2] No such file or directory: '$Prj/build/tmp-glibc/work/cortexa8hf-neon-wrs-linux-gnueabi/glibc-initial/2.26-r0/recipe-sysroot-native/installeddeps'
> =================================================
>
> Rewrite the implementation of "deltask do_build" to save
> the dependency before deleting do_build task to avoid the
> race condition.
>
> [YOCTO #12365]
>
> Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
> ---
> meta/recipes-core/glibc/glibc-initial.inc | 6 +++++-
> meta/recipes-devtools/gcc/gcc-cross-initial.inc | 6 +++++-
> meta/recipes-devtools/gcc/libgcc-initial.inc | 6 +++++-
> 3 files changed, 15 insertions(+), 3 deletions(-)
>
> diff --git a/meta/recipes-core/glibc/glibc-initial.inc b/meta/recipes-core/glibc/glibc-initial.inc
> index b86e2fb2db..4390b6dfca 100644
> --- a/meta/recipes-core/glibc/glibc-initial.inc
> +++ b/meta/recipes-core/glibc/glibc-initial.inc
> @@ -54,4 +54,8 @@ do_siteconfig () {
> inherit nopackages
>
> # We really only want this built by things that need it, not any recrdeptask
> -deltask do_build
> +python () {
> + if bb.data.inherits_class('rm_work', d):
> + bb.build.exec_func("inject_rm_work", d)
> + bb.build.deltask('do_build', d)
> +}
> diff --git a/meta/recipes-devtools/gcc/gcc-cross-initial.inc b/meta/recipes-devtools/gcc/gcc-cross-initial.inc
> index 892b1dbf2f..6c0b2eff86 100644
> --- a/meta/recipes-devtools/gcc/gcc-cross-initial.inc
> +++ b/meta/recipes-devtools/gcc/gcc-cross-initial.inc
> @@ -86,4 +86,8 @@ COMPILERINITIAL = "-initial"
>
>
> # We really only want this built by things that need it, not any recrdeptask
> -deltask do_build
> +python () {
> + if bb.data.inherits_class('rm_work', d):
> + bb.build.exec_func("inject_rm_work", d)
> + bb.build.deltask('do_build', d)
> +}
> diff --git a/meta/recipes-devtools/gcc/libgcc-initial.inc b/meta/recipes-devtools/gcc/libgcc-initial.inc
> index 950ad861e7..cef8257052 100644
> --- a/meta/recipes-devtools/gcc/libgcc-initial.inc
> +++ b/meta/recipes-devtools/gcc/libgcc-initial.inc
> @@ -17,4 +17,8 @@ COMPILERINITIAL = "-initial"
> inherit nopackages
>
> # We really only want this built by things that need it, not any recrdeptask
> -deltask do_build
> +python () {
> + if bb.data.inherits_class('rm_work', d):
> + bb.build.exec_func("inject_rm_work", d)
> + bb.build.deltask('do_build', d)
> +}
>
next prev parent reply other threads:[~2017-11-21 8:44 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-21 8:00 [PATCH] glibc/gcc/libgcc-initial: Reimplement "deltask do_build" mingli.yu
2017-11-21 8:37 ` Yu, Mingli [this message]
-- strict thread matches above, loose matches on Subject: below --
2017-11-21 8:27 mingli.yu
2017-12-12 2:13 ` Yu, Mingli
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=5A13E5E6.1070805@windriver.com \
--to=mingli.yu@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.