Files
poky/meta/classes/module.bbclass
Mark Hatle 86d6ec51f0 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>
2013-03-01 14:44:40 +00:00

58 lines
1.6 KiB
Plaintext

DEPENDS += "virtual/kernel"
inherit module-base
addtask make_scripts after do_patch before do_compile
do_make_scripts[lockfiles] = "${TMPDIR}/kernel-scripts.lock"
do_make_scripts[deptask] = "do_populate_sysroot"
module_do_compile() {
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
oe_runmake KERNEL_PATH=${STAGING_KERNEL_DIR} \
KERNEL_SRC=${STAGING_KERNEL_DIR} \
KERNEL_VERSION=${KERNEL_VERSION} \
CC="${KERNEL_CC}" LD="${KERNEL_LD}" \
AR="${KERNEL_AR}" \
${MAKE_TARGETS}
}
module_do_install() {
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
oe_runmake DEPMOD=echo INSTALL_MOD_PATH="${D}" \
KERNEL_SRC=${STAGING_KERNEL_DIR} \
CC="${KERNEL_CC}" LD="${KERNEL_LD}" \
modules_install
}
module_pkg_postinst () {
if [ -z "$D" ]; then
depmod -a ${KERNEL_VERSION}
else
depmodwrapper -a -b $D ${KERNEL_VERSION}
fi
}
module_pkg_postrm () {
if [ -z "$D" ]; then
depmod -a ${KERNEL_VERSION}
else
depmodwrapper -a -b $D ${KERNEL_VERSION}
fi
}
EXPORT_FUNCTIONS do_compile do_install
MODULE_PACKAGES ?= "${PN}"
python __anonymous() {
for package in d.getVar("MODULE_PACKAGES", True).split():
d.appendVar("RDEPENDS_%s" % package, " kernel-image")
files = d.getVar("MODULE_FILES_%s" % package, True) or "/etc /lib/modules"
d.appendVar("FILES_%s" % package, " " + files)
d.appendVar('pkg_postinst_%s' % package, " " + d.getVar('module_pkg_postinst', True))
d.appendVar('pkg_postrm_%s' % package, " " + d.getVar('module_pkg_postrm', True))
if not package in d.getVar("PACKAGES", True):
d.prependVar("PACKAGES", package + " ")
}