summaryrefslogtreecommitdiffstats
path: root/meta/classes/image-prelink.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'meta/classes/image-prelink.bbclass')
-rw-r--r--meta/classes/image-prelink.bbclass19
1 files changed, 18 insertions, 1 deletions
diff --git a/meta/classes/image-prelink.bbclass b/meta/classes/image-prelink.bbclass
index 04dd57c940..0da094a551 100644
--- a/meta/classes/image-prelink.bbclass
+++ b/meta/classes/image-prelink.bbclass
@@ -1,6 +1,6 @@
do_rootfs[depends] += "prelink-native:do_populate_sysroot"
-IMAGE_PREPROCESS_COMMAND_append_libc-glibc = " prelink_setup; prelink_image; "
+IMAGE_PREPROCESS_COMMAND:append:libc-glibc = " prelink_setup; prelink_image; "
python prelink_setup () {
oe.utils.write_ld_so_conf(d)
@@ -17,6 +17,16 @@ prelink_image () {
pre_prelink_size=`du -ks ${IMAGE_ROOTFS} | awk '{size = $1 ; print size }'`
echo "Size before prelinking $pre_prelink_size."
+ # The filesystem may not contain sysconfdir so establish what is present
+ # to enable cleanup after temporary creation of sysconfdir if needed
+ presentdir="${IMAGE_ROOTFS}${sysconfdir}"
+ while [ "${IMAGE_ROOTFS}" != "${presentdir}" ] ; do
+ [ ! -d "${presentdir}" ] || break
+ presentdir=`dirname "${presentdir}"`
+ done
+
+ mkdir -p "${IMAGE_ROOTFS}${sysconfdir}"
+
# We need a prelink conf on the filesystem, add one if it's missing
if [ ! -e ${IMAGE_ROOTFS}${sysconfdir}/prelink.conf ]; then
cp ${STAGING_ETCDIR_NATIVE}/prelink.conf \
@@ -59,6 +69,13 @@ prelink_image () {
rm $ldsoconf
fi
+ # Remove any directories temporarily created for sysconfdir
+ cleanupdir="${IMAGE_ROOTFS}${sysconfdir}"
+ while [ "${presentdir}" != "${cleanupdir}" ] ; do
+ rmdir "${cleanupdir}"
+ cleanupdir=`dirname ${cleanupdir}`
+ done
+
pre_prelink_size=`du -ks ${IMAGE_ROOTFS} | awk '{size = $1 ; print size }'`
echo "Size after prelinking $pre_prelink_size."
}