[OE-core] [dylan, master][PATCH] autotools.bbclass: Fix race with sed-native
Saul Wold
sgw at linux.intel.com
Sat Oct 5 03:22:18 UTC 2013
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 <rich.tollerton at ni.com>
> ---
> 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 = ""
>
>
More information about the Openembedded-core
mailing list