do_rootfs[depends] += "prelink-native:do_populate_sysroot"
-IMAGE_PREPROCESS_COMMAND += "prelink_image; "
+IMAGE_PREPROCESS_COMMAND += "prelink_setup; prelink_image; "
+
+python prelink_setup () {
+ oe.utils.write_ld_so_conf(d)
+}
prelink_image () {
# export PSEUDO_DEBUG=4
dummy_prelink_conf=false;
fi
+ # We need a ld.so.conf with pathnames in,prelink conf on the filesystem, add one if it's missing
+ ldsoconf=${IMAGE_ROOTFS}${sysconfdir}/ld.so.conf
+ if [ -e $ldsoconf ]; then
+ cp $ldsoconf $ldsoconf.prelink
+ fi
+ cat ${STAGING_DIR_TARGET}${sysconfdir}/ld.so.conf >> $ldsoconf
+
# prelink!
${STAGING_DIR_NATIVE}${sbindir_native}/prelink --root ${IMAGE_ROOTFS} -amR -N -c ${sysconfdir}/prelink.conf
rm -f ${IMAGE_ROOTFS}${sysconfdir}/prelink.conf
fi
+ if [ -e $ldsoconf.prelink ]; then
+ mv $ldsoconf.prelink $ldsoconf
+ else
+ rm $ldsoconf
+ fi
+
pre_prelink_size=`du -ks ${IMAGE_ROOTFS} | awk '{size = $1 ; print size }'`
echo "Size after prelinking $pre_prelink_size."
}
continue
if w in testmatrix and testmatrix[w] in g:
warnchecks.append(g[testmatrix[w]])
+ if w == 'unsafe-references-in-binaries':
+ oe.utils.write_ld_so_conf(d)
+
errorchecks = []
for e in (d.getVar("ERROR_QA", True) or "").split():
if e in skip:
continue
if e in testmatrix and testmatrix[e] in g:
errorchecks.append(g[testmatrix[e]])
+ if e == 'unsafe-references-in-binaries':
+ oe.utils.write_ld_so_conf(d)
bb.note("Checking Package: %s" % package)
# Check package name
self.tasks.join()
for worker in self.workers:
worker.join()
+
+def write_ld_so_conf(d):
+ # Some utils like prelink may not have the correct target library paths
+ # so write an ld.so.conf to help them
+ ldsoconf = d.expand("${STAGING_DIR_TARGET}${sysconfdir}/ld.so.conf")
+ if os.path.exists(ldsoconf):
+ bb.utils.remove(ldsoconf)
+ bb.utils.mkdirhier(os.path.dirname(ldsoconf))
+ with open(ldsoconf, "w") as f:
+ f.write(d.getVar("base_libdir", True) + '\n')
+ f.write(d.getVar("libdir", True) + '\n')