<div dir="ltr">This fails on the AB when generating a eSDK, eg <a href="http://errors.yoctoproject.org/Errors/Details/110635/">http://errors.yoctoproject.org/Errors/Details/110635/</a><div><br></div><div>I suspect the cause is that the sstate is generated using the (eg) universal-4.9 name, but populate_sdk_ext still uses just "universal" when creating a mirror of the sstate archive.</div><div><br></div><div>Ross</div></div><div class="gmail_extra"><br><div class="gmail_quote">On 8 November 2016 at 08:11, Ed Bartosh <span dir="ltr"><<a href="mailto:ed.bartosh@linux.intel.com" target="_blank">ed.bartosh@linux.intel.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">Some c++ libraries fail to build if uninative is built<br>
with gcc 5.x and host gcc version is either 4.8 or 4.9.<br>
<br>
The issue should be solved by making separate uninative sstate<br>
directory structure sstate-cache/universal-<gcc version> for host gcc<br>
versions 4.8 and 4.9. This causes rebuilds of uninative if host gcc<br>
is either 4.8 or 4.9 and it doesn't match gcc version used to build<br>
uninative.<br>
<br>
[YOCTO #10441]<br>
<br>
Signed-off-by: Ed Bartosh <<a href="mailto:ed.bartosh@linux.intel.com">ed.bartosh@linux.intel.com</a>><br>
---<br>
meta/classes/uninative.bbclass | 16 +++++++++++++++-<br>
1 file changed, 15 insertions(+), 1 deletion(-)<br>
<br>
diff --git a/meta/classes/uninative.<wbr>bbclass b/meta/classes/uninative.<wbr>bbclass<br>
</span>index 89cec07..3862b31 100644<br>
<span class="">--- a/meta/classes/uninative.<wbr>bbclass<br>
+++ b/meta/classes/uninative.<wbr>bbclass<br>
@@ -95,11 +95,25 @@ python uninative_event_enable() {<br>
enable_uninative(d)<br>
}<br>
<br>
+def gcc_version(d):<br>
+ compiler = d.getVar("BUILD_CC", True)<br>
+ retval, output = oe.utils.getstatusoutput("%s --version" % compiler)<br>
+ if retval:<br>
+ bb.fatal("Error running %s --version: %s" % (compiler, output))<br>
+<br>
+ import re<br>
</span>+ match = re.match(".* (\d\.\d)\.\d.*", output.split('\n')[0])<br>
<div class="HOEnZb"><div class="h5">+ if not match:<br>
+ bb.fatal("Can't get compiler version from %s --version output" % compiler)<br>
+<br>
+ version = match.group(1)<br>
+ return "-%s" % version if version in ("4.8", "4.9") else ""<br>
+<br>
def enable_uninative(d):<br>
loader = d.getVar("UNINATIVE_LOADER", True)<br>
if os.path.exists(loader):<br>
bb.debug(2, "Enabling uninative")<br>
- d.setVar("NATIVELSBSTRING", "universal")<br>
+ d.setVar("NATIVELSBSTRING", "universal%s" % gcc_version(d))<br>
d.appendVar("<wbr>SSTATEPOSTUNPACKFUNCS", " uninative_changeinterp")<br>
d.prependVar("PATH", "${STAGING_DIR}-uninative/${<wbr>BUILD_ARCH}-linux${bindir_<wbr>native}:")<br>
<br>
--<br>
2.1.4<br>
<br>
--<br>
______________________________<wbr>_________________<br>
Openembedded-core mailing list<br>
<a href="mailto:Openembedded-core@lists.openembedded.org">Openembedded-core@lists.<wbr>openembedded.org</a><br>
<a href="http://lists.openembedded.org/mailman/listinfo/openembedded-core" rel="noreferrer" target="_blank">http://lists.openembedded.org/<wbr>mailman/listinfo/openembedded-<wbr>core</a><br>
</div></div></blockquote></div><br></div>