1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-30 00:20:08 +00:00

relocatable.bbclass: remove hard-coded rpaths from native binaries

The relocatable path will pre-process built binaries in SYSROOT_DESTDIR and
replace any harcoded dynamic link rpaths with relative paths.

Add an inherit of class in native.bbclass to make our native packages
relocatable and tweak the chrpath recipe so that the native package can make
itself relocatable with the just built chrpath binary.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
This commit is contained in:
Joshua Lock
2010-02-11 16:11:01 +00:00
parent a0795895e3
commit 6e1cc7ca10
3 changed files with 32 additions and 0 deletions
+24
View File
@@ -0,0 +1,24 @@
SYSROOT_PREPROCESS_FUNCS += "relocatable_binaries_preprocess"
CHRPATH_BIN ?= "chrpath"
def rpath_replace (paths, d):
chrpath = bb.data.expand('${CHRPATH_BIN}', d)
for path in paths:
for root, dirs, files in os.walk(path):
for f in files:
if 'usr' in path:
os.system("%s -r $ORIGIN/../lib:$ORIGIN/../../lib %s/%s" % (chrpath, path,f))
else:
os.system("%s -r $ORIGIN/../lib %s/%s" % (chrpath, path, f))
python relocatable_binaries_preprocess() {
paths = []
target = bb.data.expand("${SYSROOT_DESTDIR}${TMPDIR}/sysroots/${TARGET_ARCH}-${TARGET_OS}", d)
paths.append(target + "/bin")
paths.append(target + "/usr/bin")
rpath_replace(paths, d)
}