Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: "André Draszik" <git@andred.net>,
	openembedded-core@lists.openembedded.org
Subject: Re: [PATCH 1/4] sstate: allow specifying indirect dependencies to exclude from sysroot
Date: Tue, 22 May 2018 13:36:53 +0100	[thread overview]
Message-ID: <1526992613.8937.155.camel@linuxfoundation.org> (raw)
In-Reply-To: <20180522122553.29109-1-git@andred.net>

On Tue, 2018-05-22 at 13:25 +0100, André Draszik wrote:
> diff --git a/meta/classes/sstate.bbclass
> b/meta/classes/sstate.bbclass
> index 1a95f8f2b9..e5b86ad705 100644
> --- a/meta/classes/sstate.bbclass
> +++ b/meta/classes/sstate.bbclass
> @@ -897,6 +897,7 @@ def setscene_depvalid(task, taskdependees,
> notneeded, d, log=None):
>      # task is included in taskdependees too
>      # Return - False - We need this dependency
>      #        - True - We can skip this dependency
> +    import re
>  
>      def logit(msg, log):
>          if log is not None:
> @@ -957,6 +958,18 @@ def setscene_depvalid(task, taskdependees,
> notneeded, d, log=None):
>              # Nothing need depend on libc-initial/gcc-cross-initial
>              if "-initial" in taskdependees[task][0]:
>                  continue
> +            # Allow excluding certain recursive dependencies. If a
> recipe needs it should add a
> +            # specific dependency itself, rather than relying on one
> of its dependees to pull
> +            # them in.
> +            # See also http://lists.openembedded.org/pipermail/opene
> mbedded-core/2018-January/146324.html
> +            not_needed = False
> +            for excl in (d.getVar('SSTATE_EXCLUDEDEPS_SYSROOT') or
> "").split():
> +                if re.match(excl.split('->', 1)[0],
> taskdependees[dep][0]):
> +                    if re.match(excl.split('->', 1)[1],
> taskdependees[task][0]):
> +                        not_needed = True
> +                        break
> +            if not_needed:
> +                continue
>              # For meta-extsdk-toolchain we want all sysroot
> dependencies
>              if taskdependees[dep][0] == 'meta-extsdk-toolchain':
>                  return False

Have you looked at the performance impact of this change? It looks like
it will be compiling the regexp each time inside a tight loop which
gets called once per task dependency which will show up significantly
on the performance chart.

We already have a "*" syntax used in SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS
and I'd rather use that syntax here to avoid the use of re if we can
help it. Could you see if that is possible please? That would also keep
the syntax compatible.

Cheers,

Richard



  parent reply	other threads:[~2018-05-22 12:36 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-22 12:25 [PATCH 1/4] sstate: allow specifying indirect dependencies to exclude from sysroot André Draszik
2018-05-22 12:25 ` [PATCH 2/4] sstate: use SSTATE_EXCLUDEDEPS_SYSROOT for skipping *-initial recipes André Draszik
2018-05-22 12:25 ` [PATCH 3/4] sstate: use SSTATE_EXCLUDEDEPS_SYSROOT for skipping base-passwd|shadow-sysroot recipes André Draszik
2018-05-22 12:25 ` [PATCH 4/4] sstate: avoid indirect bison/flex-native dependencies (via SSTATE_EXCLUDEDEPS_SYSROOT) André Draszik
2018-05-22 12:33   ` Richard Purdie
2018-05-22 12:44     ` André Draszik
2018-05-22 12:36 ` Richard Purdie [this message]
2018-05-22 12:48   ` [PATCH 1/4] sstate: allow specifying indirect dependencies to exclude from sysroot André Draszik
2018-05-22 12:51     ` Richard Purdie
2018-05-23 15:49   ` André Draszik
2018-06-17 13:13 ` Richard Purdie
2018-08-09  9:00   ` André Draszik
2018-08-09  9:26     ` Richard Purdie
2018-08-15 13:40 ` Richard Purdie

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=1526992613.8937.155.camel@linuxfoundation.org \
    --to=richard.purdie@linuxfoundation.org \
    --cc=git@andred.net \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox