diff options
| author | Mark Hatle <mhatle@windriver.com> | 2010-08-06 11:40:55 -0700 | 
|---|---|---|
| committer | Richard Purdie <rpurdie@linux.intel.com> | 2010-08-12 15:54:39 +0100 | 
| commit | d428c9f9e15937b9e5908fb00636b8ff1ccb9940 (patch) | |
| tree | 6c6cc42c9ebc5e915350118de6d886604a116bc6 | |
| parent | 1c9f061d1f855cd0ecdcd3449e1f9bf45a7de0ee (diff) | |
| download | openembedded-core-d428c9f9e15937b9e5908fb00636b8ff1ccb9940.tar.gz openembedded-core-d428c9f9e15937b9e5908fb00636b8ff1ccb9940.tar.bz2 openembedded-core-d428c9f9e15937b9e5908fb00636b8ff1ccb9940.zip | |
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>
| -rw-r--r-- | build/conf/local.conf.sample | 4 | ||||
| -rw-r--r-- | meta/classes/image-prelink.bbclass | 38 | ||||
| -rw-r--r-- | meta/conf/distro/poky.conf | 4 | 
3 files changed, 45 insertions, 1 deletions
| diff --git a/build/conf/local.conf.sample b/build/conf/local.conf.sample index 37c34d8f5e..66acaa49a7 100644 --- a/build/conf/local.conf.sample +++ b/build/conf/local.conf.sample @@ -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.  # diff --git a/meta/classes/image-prelink.bbclass b/meta/classes/image-prelink.bbclass new file mode 100644 index 0000000000..faf18142e6 --- /dev/null +++ b/meta/classes/image-prelink.bbclass @@ -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 diff --git a/meta/conf/distro/poky.conf b/meta/conf/distro/poky.conf index 1ee7ccf511..df07d04a90 100644 --- a/meta/conf/distro/poky.conf +++ b/meta/conf/distro/poky.conf @@ -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" | 
