staging: Improve fixup processing code

With the fixes to other parts of multilib, it was found that the fixup code's
assumptions about the recipe sysroot were incorrect. We need to use the value
calculated earlier in the function.

It turns out there is a rather neat way to do this which cleans up the code
as an added bonus.

(From OE-Core rev: 2c1978fe1a5b72167c49010fbdd39a9e2eefdef8)

(From OE-Core rev: ef7e612e54d7629518a13ed3b1c2967bf70347a2)

(From OE-Core rev: c1455f3b052fc589fad628e97e35bcc9296726e1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2018-07-02 12:43:50 +00:00
parent 842ad94cad
commit f55516fef5

View File

@@ -383,8 +383,6 @@ python extend_recipe_sysroot() {
lock = bb.utils.lockfile(recipesysroot + "/sysroot.lock")
fixme = {}
fixme[''] = []
fixme['native'] = []
seendirs = set()
postinsts = []
multilibs = {}
@@ -483,12 +481,13 @@ python extend_recipe_sysroot() {
if manifest:
newmanifest = collections.OrderedDict()
targetdir = destsysroot
if native:
fm = fixme['native']
targetdir = recipesysrootnative
else:
fm = fixme['']
targetdir = destsysroot
if targetdir not in fixme:
fixme[targetdir] = []
fm = fixme[targetdir]
with open(manifest, "r") as f:
manifests[dep] = manifest
for l in f:
@@ -546,12 +545,7 @@ python extend_recipe_sysroot() {
bb.note("Skipping as already exists in sysroot: %s" % str(msg_exists))
for f in fixme:
if f == '':
staging_processfixme(fixme[f], recipesysroot, recipesysroot, recipesysrootnative, d)
elif f == 'native':
staging_processfixme(fixme[f], recipesysrootnative, recipesysroot, recipesysrootnative, d)
else:
staging_processfixme(fixme[f], multilibs[f].getVar("RECIPE_SYSROOT"), recipesysroot, recipesysrootnative, d)
staging_processfixme(fixme[f], f, recipesysroot, recipesysrootnative, d)
for p in postinsts:
subprocess.check_output(p, shell=True, stderr=subprocess.STDOUT)