All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] lib/bb/runqueue: avoid marking runtime dependencies as covered
@ 2011-11-11 18:38 Paul Eggleton
  2011-11-15 11:54 ` Richard Purdie
  0 siblings, 1 reply; 2+ messages in thread
From: Paul Eggleton @ 2011-11-11 18:38 UTC (permalink / raw)
  To: bitbake-devel

The code which populates setscene_covered list was adding a task to the
covered list if all of the tasks that depend upon it were also covered;
however, this means that tasks that would have installed "runtime"
dependencies were being marked as covered also, e.g. gmp-native and
mpfr-native are needed by gcc-cross at runtime since they are shared
libraries that gcc links to, but their do_populate_sysroot tasks were
being marked as covered, resulting in failures later on if gcc-cross was
available from sstate but mpfr-native and gmp-native weren't.

Since we currently have no real way to handle runtime dependencies for
native packages, add a workaround which avoids marking tasks as covered
if one or more of their revdeps are from a different recipe.

Fixes [YOCTO #1536].

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
 lib/bb/runqueue.py |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/lib/bb/runqueue.py b/lib/bb/runqueue.py
index 7a39d89..a725388 100644
--- a/lib/bb/runqueue.py
+++ b/lib/bb/runqueue.py
@@ -1208,8 +1208,13 @@ class RunQueueExecuteTasks(RunQueueExecute):
                 if task in self.rq.scenequeue_covered:
                     continue
                 if len(self.rqdata.runq_revdeps[task]) > 0 and self.rqdata.runq_revdeps[task].issubset(self.rq.scenequeue_covered):
-                    self.rq.scenequeue_covered.add(task)
                     found = True
+                    for revdep in self.rqdata.runq_revdeps[task]:
+                        if self.rqdata.runq_fnid[task] != self.rqdata.runq_fnid[revdep]:
+                            found = False
+                            break
+                    if found:
+                        self.rq.scenequeue_covered.add(task)
 
         # Detect when the real task needs to be run anyway by looking to see
         # if any of its dependencies within the same package are scheduled
-- 
1.7.5.4




^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] lib/bb/runqueue: avoid marking runtime dependencies as covered
  2011-11-11 18:38 [PATCH] lib/bb/runqueue: avoid marking runtime dependencies as covered Paul Eggleton
@ 2011-11-15 11:54 ` Richard Purdie
  0 siblings, 0 replies; 2+ messages in thread
From: Richard Purdie @ 2011-11-15 11:54 UTC (permalink / raw)
  To: Paul Eggleton; +Cc: bitbake-devel

On Fri, 2011-11-11 at 18:38 +0000, Paul Eggleton wrote:
> The code which populates setscene_covered list was adding a task to the
> covered list if all of the tasks that depend upon it were also covered;
> however, this means that tasks that would have installed "runtime"
> dependencies were being marked as covered also, e.g. gmp-native and
> mpfr-native are needed by gcc-cross at runtime since they are shared
> libraries that gcc links to, but their do_populate_sysroot tasks were
> being marked as covered, resulting in failures later on if gcc-cross was
> available from sstate but mpfr-native and gmp-native weren't.
> 
> Since we currently have no real way to handle runtime dependencies for
> native packages, add a workaround which avoids marking tasks as covered
> if one or more of their revdeps are from a different recipe.
> 
> Fixes [YOCTO #1536].
> 
> Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
> ---
>  lib/bb/runqueue.py |    7 ++++++-
>  1 files changed, 6 insertions(+), 1 deletions(-)

Applied to master, thanks.

I have some concerns about this change in that it will cause more "work"
in some cases even where it isn't needed. I'd rather that than the
current situation where we don't install enough of the sstate packages
though.

We're going to have to revisit this at some point but it makes sense to
apply this right now.

Cheers,

Richard




^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2011-11-15 12:00 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-11 18:38 [PATCH] lib/bb/runqueue: avoid marking runtime dependencies as covered Paul Eggleton
2011-11-15 11:54 ` Richard Purdie

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.