All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ming Liu <ming.liu@windriver.com>
To: <openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH] sstate: Add optimizing logic for crosssdk setscene dependencies
Date: Mon, 23 Dec 2013 10:10:08 +0800	[thread overview]
Message-ID: <52B79B80.4040007@windriver.com> (raw)
In-Reply-To: <1384426288-3534-1-git-send-email-ming.liu@windriver.com>

Hi, guys:

Would anybody take a tech review to my patch? Thanks!

the best,
thank you

On 11/14/2013 06:51 PM, Ming Liu wrote:
> This patch mainly aims to add optimisation for crosssdk setscene dependency
> validating which we haven't handled in current logic, and which I think we
> could have as we've already implemented to native/cross, although there
> are albeit not many crossdk tasks, we could still get some performance
> enhancement.
>
> And it also fix a vulnerability of some certain workflow, think about the
> following scenario with current logic:
>      bitbake nativesdk-eglibc-initial -c cleansstate
>      bitbake gcc-crosssdk-initial -c clean
>      bitbake gmp-native -c clean
>      bitbake libmpc-native -c clean
>      bitbake mpfr-native -c clean
>      bitbake gcc-crosssdk-initial
>      bitbake nativesdk-eglibc-initial
>
> Aboving will fail for absence of a few native libraries required by
> gcc-crosssdk-initial.
>
> Also modified some places in current code except the optimisation, as
> following:
> 1 Remove isNative function since no code is referring it.
> 2 Add do_package to the list that don't exist and are noexec.
>
> Signed-off-by: Ming Liu <ming.liu@windriver.com>
> ---
>   meta/classes/sstate.bbclass | 24 +++++++++++-------------
>   1 file changed, 11 insertions(+), 13 deletions(-)
>
> diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
> index 517c100..49f92f9 100644
> --- a/meta/classes/sstate.bbclass
> +++ b/meta/classes/sstate.bbclass
> @@ -666,12 +666,10 @@ def setscene_depvalid(task, taskdependees, notneeded, d):
>   
>       bb.debug(2, "Considering setscene task: %s" % (str(taskdependees[task])))
>   
> -    def isNative(x):
> -        return x.endswith("-native")
> -    def isNativeCross(x):
> -        return x.endswith("-native") or x.endswith("-cross") or x.endswith("-cross-initial")
> +    def isNativeCrossCrosssdk(x):
> +        return x.endswith("-native") or x.endswith("-cross") or x.endswith("-cross-initial") or x.endswith("-crosssdk") or x.endswith("-crosssdk-initial")
>       def isSafeDep(x):
> -        if x in ["quilt-native", "autoconf-native", "automake-native", "gnu-config-native", "libtool-native", "pkgconfig-native", "gcc-cross", "binutils-cross", "gcc-cross-initial"]:
> +        if x in ["quilt-native", "autoconf-native", "automake-native", "gnu-config-native", "libtool-native", "pkgconfig-native", "gcc-cross", "binutils-cross", "gcc-cross-initial", "gcc-crosssdk", "binutils-crosssdk", "gcc-crosssdk-initial"]:
>               return True
>           return False
>       def isPostInstDep(x):
> @@ -701,8 +699,8 @@ def setscene_depvalid(task, taskdependees, notneeded, d):
>               if isPostInstDep(taskdependees[task][0]) and taskdependees[dep][1] in ['do_package_write_deb', 'do_package_write_ipk', 'do_package_write_rpm']:
>                   return False
>               continue
> -        # Native/Cross packages don't exist and are noexec anyway
> -        if isNativeCross(taskdependees[dep][0]) and taskdependees[dep][1] in ['do_package_write_deb', 'do_package_write_ipk', 'do_package_write_rpm', 'do_packagedata']:
> +        # Native/Cross/Crosssdk packages don't exist and are noexec anyway
> +        if isNativeCrossCrosssdk(taskdependees[dep][0]) and taskdependees[dep][1] in ['do_package_write_deb', 'do_package_write_ipk', 'do_package_write_rpm', 'do_packagedata', 'do_package']:
>               continue
>   
>           # Consider sysroot depending on sysroot tasks
> @@ -713,14 +711,14 @@ def setscene_depvalid(task, taskdependees, notneeded, d):
>               # Nothing need depend on libc-initial/gcc-cross-initial
>               if taskdependees[task][0].endswith("-initial"):
>                   continue
> -            # Native/Cross populate_sysroot need their dependencies
> -            if isNativeCross(taskdependees[task][0]) and isNativeCross(taskdependees[dep][0]):
> +            # Native/Cross/Crosssdk populate_sysroot need their dependencies
> +            if isNativeCrossCrosssdk(taskdependees[task][0]) and isNativeCrossCrosssdk(taskdependees[dep][0]):
>                   return False
> -            # Target populate_sysroot depended on by cross tools need to be installed
> -            if isNativeCross(taskdependees[dep][0]):
> +            # Target/Nativesdk populate_sysroot depended on by cross/crosssdk tools need to be installed
> +            if isNativeCrossCrosssdk(taskdependees[dep][0]):
>                   return False
> -            # Native/cross tools depended upon by target sysroot are not needed
> -            if isNativeCross(taskdependees[task][0]):
> +            # Native,Cross/Crosssdk tools depended upon by target/nativesdk sysroot are not needed
> +            if isNativeCrossCrosssdk(taskdependees[task][0]):
>                   continue
>               # Target populate_sysroot need their dependencies
>               return False



  reply	other threads:[~2013-12-23  2:10 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-14 10:51 [PATCH] sstate: Add optimizing logic for crosssdk setscene dependencies Ming Liu
2013-12-23  2:10 ` Ming Liu [this message]
2014-01-06 12:25 ` Richard Purdie
2014-01-07  7:52   ` Ming Liu

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=52B79B80.4040007@windriver.com \
    --to=ming.liu@windriver.com \
    --cc=openembedded-core@lists.openembedded.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.