module.bbclass: Create a new depmodwrapper to assist cross-installs

Previously the build path to STAGING_KERNEL_DIR was being embedded into the
package post install scripts.  We avoid this behavior by generating a special
depmodwrapper script.  This script contains that hard-coded path, ensuring
that re-use of the sstate-cache (and/or packages) will always run through the
wrapper generated by the current build with a checksum that includes
STAGING_KERNEL_DIR.

[ YOCTO #3962 ]

(From OE-Core rev: b18c61bae4d7161c087a004bba3c696006f7a2f6)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Mark Hatle
2013-02-28 15:51:51 -06:00
committed by Richard Purdie
parent be248b0222
commit 86d6ec51f0
4 changed files with 51 additions and 8 deletions

View File

@@ -1,7 +1,7 @@
inherit linux-kernel-base module_strip
PROVIDES += "virtual/kernel"
DEPENDS += "virtual/${TARGET_PREFIX}gcc kmod-native"
DEPENDS += "virtual/${TARGET_PREFIX}gcc kmod-native depmodwrapper-cross"
# we include gcc above, we dont need virtual/libc
INHIBIT_DEFAULT_DEPS = "1"
@@ -272,7 +272,7 @@ if [ ! -e "$D/lib/modules/${KERNEL_VERSION}" ]; then
mkdir -p $D/lib/modules/${KERNEL_VERSION}
fi
if [ -n "$D" ]; then
depmod -a -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION} ${KERNEL_VERSION}
depmodwrapper -a -b $D ${KERNEL_VERSION}
else
depmod -a ${KERNEL_VERSION}
fi
@@ -282,7 +282,7 @@ pkg_postinst_modules () {
if [ -z "$D" ]; then
depmod -a ${KERNEL_VERSION}
else
depmod -a -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION} ${KERNEL_VERSION}
depmodwrapper -a -b $D ${KERNEL_VERSION}
fi
}
@@ -290,7 +290,7 @@ pkg_postrm_modules () {
if [ -z "$D" ]; then
depmod -a ${KERNEL_VERSION}
else
depmod -a -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION} ${KERNEL_VERSION}
depmodwrapper -a -b $D ${KERNEL_VERSION}
fi
}