Bug 6851

Summary: icu-native: not relocatable via sstate
Product: [Build System, Metadata & Runtime] OE-Core Reporter: André Draszik <byo>
Component: deploymentAssignee: Ross Burton <ross.burton>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: Medium CC: sgw
Version: unspecified   
Target Milestone: 1.8.1   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: No (bug/feature does not impact docs)
Attachments:
Description Flags
fix hard paths none

Description André Draszik 2014-10-16 13:27:01 UTC
The icu recipe installs icu-native twice, once in the usual location,
and once for cross builds into the path given by --with-cross-build.

This latter path is not included in the list of paths recognised by
chrpath.bbclass, hence the binaries in there retain the rpath as used
during compilation. This causes the package to not be relocateable
from sstate.
Comment 1 André Draszik 2014-10-16 13:28:24 UTC
Created attachment 2191 [details]
fix hard paths

using PREPROCESS_RELOCATE_DIRS
Comment 2 André Draszik 2014-10-17 09:11:30 UTC
It seems this change alone doesn't cause the sstate signature to become invalid, hence bitbake uses an existing archive from sstate (which still has the old rpaths).

Not sure what's missing to force a signature change here, other than doing a -c cleansstate
Comment 3 André Draszik 2014-10-17 09:21:58 UTC
And BTW, in the patch, I did try using ${STAGING_ICU_DIR_NATIVE} instead of open-coding ${datadir}/${BPN}/${PV}, originally, but that didn't work, as at the time chrpath.bbclass was running, this translated into .../usr/lib instead of .../usr/share (as it should and does during all the other tasks).

I didn't find the reason for that.
Comment 4 Ross Burton 2015-04-16 15:17:17 UTC
Andre, can you submit this to the oe-core list as a git-formatted patch?
Comment 5 Ross Burton 2015-06-04 14:00:00 UTC
Fixed in oe-core e7fcaa534511e3f65b630b01cf0c824ee5a5fd4d.