image-prelink: remove assumption of sysconfdir presence

If sysconfdir is not present in the image filesystem then the temporary
creation of a prelink.conf will fail. Fix this by creating sysconfdir
temporarily if needed beforehand and then remove any directories that
were created afterwards.

fixes: OpenXT OXT-1751

(From OE-Core rev: 6bf3e3db355643c4b2e20346230c09e45e519035)

Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Christopher Clark
2020-03-10 14:55:13 -07:00
committed by Richard Purdie
parent cb659c2b1d
commit 59e64ae58c

View File

@@ -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."
}