aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBruce Ashfield <bruce.ashfield@windriver.com>2013-11-14 11:55:26 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-11-15 15:27:02 +0000
commit6a3b3e501c66733216ac43d3f020cfdb512dd640 (patch)
treefd70e693ec5fd7d67ddd328f92f5ac8e4655b837
parent89a372840a957e540bed954e629aa68335b3dfe0 (diff)
downloadopenembedded-core-contrib-6a3b3e501c66733216ac43d3f020cfdb512dd640.tar.gz
kernel.bbclass: test for hardlinks before installing
commit df564c4 [kernel: Use hardlinks for do_populate_sysroot for speed] does indeed speed up the build, but it also means that the KERNEL_OUPUT and KERNEL_IMAGETYPE may be hardlinks. If they are hardlinks, install complains that they are actually the same file and stops the build. We can easily test and avoid the copy if the file is already in place. [YOCTO #5527] Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/kernel.bbclass6
1 files changed, 5 insertions, 1 deletions
diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index 383043ed9c..624b15101e 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -244,7 +244,11 @@ kernel_do_install() {
find . -depth -not -path "./Documentation*" -not -path "./.*" -print0 | cpio --null -pdlu $kerneldir
cd "$pwd"
fi
- install -m 0644 ${KERNEL_OUTPUT} $kerneldir/${KERNEL_IMAGETYPE}
+
+ # Test to ensure that the output file and image type are not actually
+ # the same file. If hardlinking is used, they will be the same, and there's
+ # no need to install.
+ ![ ${KERNEL_OUTPUT} -ef $kerneldir/${KERNEL_IMAGETYPE} ] && install -m 0644 ${KERNEL_OUTPUT} $kerneldir/${KERNEL_IMAGETYPE}
install -m 0644 System.map $kerneldir/System.map-${KERNEL_VERSION}
# Dummy Makefile so the clean below works