diff options
author | Mark Hatle <mark.hatle@windriver.com> | 2013-02-28 15:51:51 -0600 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-03-01 14:44:40 +0000 |
commit | 86d6ec51f0e1a4f5335d72928ef14ea1335d49b0 (patch) | |
tree | 0da20526e2d0583ddee24cd38d5717d30032530f /meta/recipes-kernel/kmod | |
parent | be248b0222bda151ae5f94be6bb8a53e192ecded (diff) | |
download | poky-86d6ec51f0e1a4f5335d72928ef14ea1335d49b0.tar.gz |
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>
Diffstat (limited to 'meta/recipes-kernel/kmod')
-rw-r--r-- | meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb b/meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb new file mode 100644 index 0000000000..efb1cac4c6 --- /dev/null +++ b/meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb | |||
@@ -0,0 +1,43 @@ | |||
1 | DESCRIPTION = "Depmod wrapper script" | ||
2 | LICENSE = "MIT" | ||
3 | PR = "r0" | ||
4 | LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" | ||
5 | |||
6 | # We need the following for the sstate code to process the wrapper | ||
7 | SSTATE_SCAN_FILES += "depmodwrapper" | ||
8 | |||
9 | do_install() { | ||
10 | install -d ${D}${bindir_crossscripts}/ | ||
11 | |||
12 | cat > ${D}${bindir_crossscripts}/depmodwrapper << EOF | ||
13 | #!/bin/sh | ||
14 | # Expected to be called as: depmodwrapper -a KERNEL_VERSION | ||
15 | if [ "\$1" != "-a" -o "\$2" != "-b" ]; then | ||
16 | echo "Usage: depmodwrapper -a -b rootfs KERNEL_VERSION" >&2 | ||
17 | exit 1 | ||
18 | fi | ||
19 | if [ ! -r ${STAGING_KERNEL_DIR}/kernel-abiversion ]; then | ||
20 | echo "Unable to read: ${STAGING_KERNEL_DIR}/kernel-abiversion" >&2 | ||
21 | else | ||
22 | kernelabi=\$(cat ${STAGING_KERNEL_DIR}/kernel-abiversion) | ||
23 | if [ "\$kernelabi" != "\$4" ]; then | ||
24 | echo "Error: Kernel version \$4 does not match kernel-abiversion (\$kernelabi)" >&2 | ||
25 | exit 1 | ||
26 | fi | ||
27 | fi | ||
28 | |||
29 | if [ ! -r ${STAGING_KERNEL_DIR}/System.map-\$4 ]; then | ||
30 | echo "Unable to read: ${STAGING_KERNEL_DIR}/System.map-\$4" >&2 | ||
31 | exec env depmod "\$1" "\$2" "\$3" "\$4" | ||
32 | else | ||
33 | exec env depmod "\$1" "\$2" "\$3" -F "${STAGING_KERNEL_DIR}/System.map-\$4" "\$4" | ||
34 | fi | ||
35 | EOF | ||
36 | chmod +x ${D}${bindir_crossscripts}/depmodwrapper | ||
37 | } | ||
38 | |||
39 | SYSROOT_PREPROCESS_FUNCS += "depmodwrapper_sysroot_preprocess" | ||
40 | |||
41 | depmodwrapper_sysroot_preprocess () { | ||
42 | sysroot_stage_dir ${D}${bindir_crossscripts} ${SYSROOT_DESTDIR}${bindir_crossscripts} | ||
43 | } | ||