prelink: Enable image wide prelinking

Add the ability to specify user level classes via the local.conf.

Use this new capability to add an image-prelink class that does an
image wide cross-prelink activity.

Signed-off-by: Mark Hatle <mhatle@windriver.com>
This commit is contained in:
Mark Hatle
2010-08-06 11:40:55 -07:00
committed by Richard Purdie
parent 1c9f061d1f
commit d428c9f9e1
3 changed files with 45 additions and 1 deletions

View File

@@ -75,6 +75,10 @@ EXTRA_IMAGE_FEATURES_mx31ads = "tools-testapps debug-tweaks"
#PACKAGE_CLASSES ?= "package_deb package_ipk"
PACKAGE_CLASSES ?= "package_ipk"
# A list of additional classes to use when building the system
# include 'image-prelink' in order to prelink the filesystem image
USER_CLASSES ?= "image-prelink"
# POKYMODE controls the characteristics of the generated packages/images by
# telling poky which type of toolchain to use.
#

View File

@@ -0,0 +1,38 @@
do_rootfs[depends] += "prelink-native:do_populate_sysroot"
IMAGE_PREPROCESS_COMMAND += "prelink_image; "
prelink_image () {
# export PSEUDO_DEBUG=4
# /bin/env | /bin/grep PSEUDO
# echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
# echo "LD_PRELOAD=$LD_PRELOAD"
pre_prelink_size=`du -ks ${IMAGE_ROOTFS} | awk '{size = $1 ; print size }'`
echo "Size before prelinking $pre_prelink_size."
# We need a prelink conf on the filesystem, add one if it's missing
if [ ! -e ${IMAGE_ROOTFS}/etc/prelink.conf ]; then
cp ${STAGING_DIR_NATIVE}/etc/prelink.conf \
${IMAGE_ROOTFS}/etc/prelink.conf
dummy_prelink_conf=true;
else
dummy_prelink_conf=false;
fi
# prelink!
${STAGING_DIR_NATIVE}/usr/sbin/prelink --root ${IMAGE_ROOTFS} -amR
# Remove the prelink.conf if we had to add it.
if [ $dummy_prelink_conf ]; then
rm -f ${IMAGE_ROOTFS}/etc/prelink.conf
fi
# Cleanup temporary file, it's not needed...
rm -f ${IMAGE_ROOTFS}/etc/prelink.cache
pre_prelink_size=`du -ks ${IMAGE_ROOTFS} | awk '{size = $1 ; print size }'`
echo "Size after prelinking $pre_prelink_size."
}
EXPORT_FUNCTIONS prelink_image

View File

@@ -7,9 +7,11 @@ DISTRO_VERSION = "3.3+snapshot-${DATE}"
MAINTAINER = "Poky <poky@openedhand.com>"
USER_CLASSES ?= ""
PACKAGE_CLASSES ?= "package_ipk"
INHERIT_INSANE ?= "insane"
INHERIT += "${PACKAGE_CLASSES} debian poky devshell ${INHERIT_INSANE} packaged-staging"
INHERIT += "${PACKAGE_CLASSES} ${USER_CLASSES} debian poky devshell ${INHERIT_INSANE} packaged-staging"
# For some reason, this doesn't work
# TARGET_OS ?= "linux"
# TARGET_VENDOR ?= "-poky"