]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
bitbake: siggen: Fix a subtle bug in hash calculation for shared work tasks
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 22 Aug 2014 17:23:55 +0000 (17:23 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sat, 23 Aug 2014 08:31:42 +0000 (09:31 +0100)
With a shared work task like gcc, the task can be run from a variety of
different recipes which may have different virtual extensions in place.

Depending on whether gcc-runtime or nativesdk-gcc-runtime's do_preconfigure
task is called for example will change the sorting of the task hashes due
to the way clean_basename currently works.

The correct thing to do here is sort on the base filename first, then any
extension when ordering the hashes. This means we do account for things
like recipes with both a native and non-native dependency but we also fix
the shared work case where we don't care whether it was a virtual version
or not.

(Bitbake rev: 2e80b5d10a5037ed6f0bc227a1f9b42529c87086)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
bitbake/lib/bb/siggen.py

index 933311cccb30b61f8825b865c6748ec3d6d77dfd..548f50dfcfc49541f3466f2f0f5ea65246c826ad 100644 (file)
@@ -295,7 +295,7 @@ def dump_this_task(outfile, d):
 
 def clean_basepath(a):
     if a.startswith("virtual:"):
-        b = a.rsplit(":", 1)[0] + ":" + a.rsplit("/", 1)[1]
+        b = a.rsplit("/", 1)[1] + ":" + a.rsplit(":", 1)[0]
     else:
         b = a.rsplit("/", 1)[1]
     return b