multilib.bbclass: fix faulty redefinition of STAGING_KERNEL_DIR

Due to the problem fixed in
'56c677a multilib: Move redefinition of STAGING_DIR_KERNEL'
STAGING_KERNEL_DIR must be redefined for lib32 in multilib.bbclass.
However this redefinition expanded STAGING_KERNEL_DIR to an absolute
path. This unconsciously added the TMPDIR path in the sstate object,
causing packages depended on STAGING_KERNEL_DIR being rebuild if the
TMPDIR was changed.

Solve this by forcing the unexpanded TMPDIR variable to remain in the
beginning of STAGING_DIR_KERNEL (as default). Since TMPDIR is included in
BB_HASHBASE_WHITELIST, the sstate object will not be depended on the
expanded path anymore.

(From OE-Core rev: 30238852a53d221ebcaa5b2dc30ea9617c2715a1)

Signed-off-by: Petter Mabäcker <petter@technux.se>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Petter Mabäcker
2017-05-15 06:17:11 +02:00
committed by Richard Purdie
parent 7a19bbcf81
commit b3c3f9aaa9

View File

@@ -4,7 +4,9 @@ python multilib_virtclass_handler () {
if cls != "multilib" or not variant:
return
e.data.setVar('STAGING_KERNEL_DIR', e.data.getVar('STAGING_KERNEL_DIR'))
localdata = bb.data.createCopy(e.data)
localdata.delVar('TMPDIR')
e.data.setVar('STAGING_KERNEL_DIR', localdata.getVar('STAGING_KERNEL_DIR'))
# There should only be one kernel in multilib configs
# We also skip multilib setup for module packages.