On 10/04/2013 04:35 PM, Richard Tollerton wrote:
Suppose the following:
1) foo.do_configure/do_build runs in parallel with
sed-native.do_configure;
2) foo.do_configure/do_build makes use of sed (i.e. inherits autotools);
3) A previously built sed-native already exists in the native sysroot,
and in the sstate cache.
Then sed-native may be deleted from its sysroot via
sstate_clean_manifest while foo.do_configure/do_build is using it,
leading to an irreproducible build failure.
This fix does for sed-native what's already done for libtool-native,
with some additional light refactoring.
This also starts to create more front end bottle next on autotools
related items before we can really start to parallelize the build.
More thought is required on this.
Signed-off-by: Richard Tollerton <[email protected]>
---
meta/classes/autotools.bbclass | 26 +++++++++++++++++---------
1 file changed, 17 insertions(+), 9 deletions(-)
diff --git a/meta/classes/autotools.bbclass b/meta/classes/autotools.bbclass
index 66c0f5d..2bb2aa3 100644
--- a/meta/classes/autotools.bbclass
+++ b/meta/classes/autotools.bbclass
@@ -7,17 +7,25 @@ def autotools_dep_prepend(d):
if pn in ['autoconf-native', 'automake-native', 'help2man-native']:
return deps
- deps += 'autoconf-native automake-native '
+ deps += 'autoconf-native automake-native gnu-config-native '
You don't mention anything about this change.
Sau!
- if not pn in ['libtool', 'libtool-native'] and not
pn.endswith("libtool-cross"):
- deps += 'libtool-native '
- if not bb.data.inherits_class('native', d) \
- and not bb.data.inherits_class('nativesdk', d) \
- and not bb.data.inherits_class('cross', d) \
- and not d.getVar('INHIBIT_DEFAULT_DEPS', True):
- deps += 'libtool-cross '
+ if pn in ['libtool', 'libtool-native'] or pn.endswith("libtool-cross"):
+ return deps
+ deps += 'libtool-native '
+
+ if d.getVar('INHIBIT_DEFAULT_DEPS', True):
+ return deps
+
+ if pn not in ['sed-native']:
+ deps += 'sed-native '
+
+ if bb.data.inherits_class('native', d) \
+ or bb.data.inherits_class('nativesdk', d) \
+ or bb.data.inherits_class('cross', d):
+ return deps
+ deps += 'libtool-cross '
- return deps + 'gnu-config-native '
+ return deps
EXTRA_OEMAKE = ""
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core