From: Mike Crowe <mac@mcrowe.com>
To: openembedded-core@lists.openembedded.org
Cc: Mike Crowe <mcrowe@brightsign.biz>, Mike Crowe <mac@mcrowe.com>
Subject: [PATCH 2/2] kernel.bbclass: Stop bundle_initramfs thwarting sstate cache and fix race
Date: Fri, 22 Nov 2013 14:04:19 +0000 [thread overview]
Message-ID: <1385129059-941-3-git-send-email-mac@mcrowe.com> (raw)
In-Reply-To: <1385129059-941-1-git-send-email-mac@mcrowe.com>
The new do_bundle_initramfs task defeats using the sstate cache. The kernel
is resurrected from the sstate cache but ends up being built again since
do_bundle_initramfs depends on do_compile. The do_bundle_initramfs task is
also marked nostamp which means it will always run.
The plan is to run do_bundle_initramfs before do_deploy and then move the
code to update the deploy directory to do_deploy but make it write to
${DEPLOYDIR} rather then ${DEPLOY_DIR_IMAGE}.
do_bundle_initramfs can also race against do_install since both call into
the kernel build system. This is fixed by making do_bundle_initramfs run
after do_install (and this therefore also fixes the problem that
3baa63b4d588c3262254528b406ede265dd117bf was addressing.)
Signed-off-by: Mike Crowe <mcrowe@brightsign.biz>
---
meta/classes/kernel.bbclass | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index ba13e67..4974507 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -134,25 +134,14 @@ do_bundle_initramfs () {
echo "There is kernel image bundled with initramfs: ${B}/${KERNEL_OUTPUT}.initramfs"
install -m 0644 ${B}/${KERNEL_OUTPUT}.initramfs ${D}/boot/${KERNEL_IMAGETYPE}-initramfs-${MACHINE}.bin
echo "${B}/${KERNEL_OUTPUT}.initramfs"
- cd ${B}
- # Update deploy directory
- if [ -e "${KERNEL_OUTPUT}.initramfs" ]; then
- echo "Copying deploy kernel-initramfs image and setting up links..."
- initramfs_base_name=${INITRAMFS_BASE_NAME}
- initramfs_symlink_name=${KERNEL_IMAGETYPE}-initramfs-${MACHINE}
- install -m 0644 ${KERNEL_OUTPUT}.initramfs ${DEPLOY_DIR_IMAGE}/${initramfs_base_name}.bin
- cd ${DEPLOY_DIR_IMAGE}
- ln -sf ${initramfs_base_name}.bin ${initramfs_symlink_name}.bin
- fi
fi
}
-do_bundle_initramfs[nostamp] = "1"
python do_devshell_prepend () {
os.environ["LDFLAGS"] = ''
}
-addtask bundle_initramfs after do_compile before do_build
+addtask bundle_initramfs after do_install before do_deploy
kernel_do_compile() {
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
@@ -479,6 +468,17 @@ kernel_do_deploy() {
ln -sf ${KERNEL_IMAGE_BASE_NAME}.bin ${DEPLOYDIR}/${KERNEL_IMAGETYPE}
cp ${COREBASE}/meta/files/deploydir_readme.txt ${DEPLOYDIR}/README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt
+
+ cd ${B}
+ # Update deploy directory
+ if [ -e "${KERNEL_OUTPUT}.initramfs" ]; then
+ echo "Copying deploy kernel-initramfs image and setting up links..."
+ initramfs_base_name=${INITRAMFS_BASE_NAME}
+ initramfs_symlink_name=${KERNEL_IMAGETYPE}-initramfs-${MACHINE}
+ install -m 0644 ${KERNEL_OUTPUT}.initramfs ${DEPLOYDIR}/${initramfs_base_name}.bin
+ cd ${DEPLOYDIR}
+ ln -sf ${initramfs_base_name}.bin ${initramfs_symlink_name}.bin
+ fi
}
do_deploy[dirs] = "${DEPLOYDIR} ${B}"
do_deploy[prefuncs] += "package_get_auto_pr"
--
1.7.10.4
next prev parent reply other threads:[~2013-11-22 14:04 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-22 14:04 kernel.bbclass: Fix various bundle_initramfs problems Mike Crowe
2013-11-22 14:04 ` [PATCH 1/2] Revert "kernel.bbclass: move bundle_initramfs after kernel_link_vmlinux" Mike Crowe
2013-11-22 15:53 ` Bruce Ashfield
2013-11-22 15:54 ` Bruce Ashfield
2013-11-22 14:04 ` Mike Crowe [this message]
2013-11-22 14:23 ` kernel.bbclass: Fix various bundle_initramfs problems (v2) Mike Crowe
2013-11-22 14:23 ` [PATCH 1/2] Revert "kernel.bbclass: move bundle_initramfs after kernel_link_vmlinux" Mike Crowe
2013-11-22 14:23 ` [PATCH 2/2] kernel.bbclass: Stop bundle_initramfs thwarting sstate cache and fix race Mike Crowe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1385129059-941-3-git-send-email-mac@mcrowe.com \
--to=mac@mcrowe.com \
--cc=mcrowe@brightsign.biz \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.