summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@intel.com>2012-11-28 17:28:39 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-12-03 13:52:08 +0000
commit2e6924e74dded0ab8ea0dfd65d9b20563a205b94 (patch)
tree5223cf95985c1efb2c50cdadd96f6fd95392fd19 /meta/recipes-devtools
parent48db13e7a5f9416c6aa871389f7b470002d346fa (diff)
downloadpoky-2e6924e74dded0ab8ea0dfd65d9b20563a205b94.tar.gz
guile: touch compiled modules on sstate install
When guile is installed from sstate, if the compiled files get a modified time older than the source files then guile will produce warnings like this: ;;; note: source file /data/poky-master/tmp/sysroots/x86_64-linux/usr/share/guile/2.0/ice-9/boot-9.scm ;;; newer than compiled /data/poky-master/tmp/sysroots/x86_64-linux/usr/lib/guile/2.0/ccache/ice-9/boot-9.go Not staging the files and letting guile re-compile them on demand won't work: ;;; compiling /data/poky-master/tmp/sysroots/x86_64-linux/usr/share/guile/2.0/system/base/compile.scm ;;; it seems /data/poky-master/tmp/sysroots/x86_64-linux/usr/share/guile/2.0/system/base/compile.scm ;;; is part of the compiler; skipping auto-compilation So, use a sstate postinst function to explicitly touch the compiled files after the extraction to ensure that they are fresher. [ YOCTO #3370 ] (From OE-Core rev: cb8fbc332f730cbb4d9c9866ee7b95d62245d121) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools')
-rw-r--r--meta/recipes-devtools/guile/guile_2.0.6.bb13
1 files changed, 12 insertions, 1 deletions
diff --git a/meta/recipes-devtools/guile/guile_2.0.6.bb b/meta/recipes-devtools/guile/guile_2.0.6.bb
index 89fedcbcdc..45603e6eda 100644
--- a/meta/recipes-devtools/guile/guile_2.0.6.bb
+++ b/meta/recipes-devtools/guile/guile_2.0.6.bb
@@ -28,7 +28,7 @@ SRC_URI = "${GNU_MIRROR}/guile/guile-${PV}.tar.gz \
28SRC_URI[md5sum] = "3438cd4415c0c43ca93a20e845eba7e2" 28SRC_URI[md5sum] = "3438cd4415c0c43ca93a20e845eba7e2"
29SRC_URI[sha256sum] = "3ece055145a5020dd36b84f5fbccd4b3846a671960dd5ee55931555f03200950" 29SRC_URI[sha256sum] = "3ece055145a5020dd36b84f5fbccd4b3846a671960dd5ee55931555f03200950"
30 30
31PR = "r1" 31PR = "r2"
32 32
33inherit autotools gettext 33inherit autotools gettext
34BBCLASSEXTEND = "native" 34BBCLASSEXTEND = "native"
@@ -90,3 +90,14 @@ guile_cross_config() {
90 install guile-config.cross ${STAGING_BINDIR_CROSS}/guile-config 90 install guile-config.cross ${STAGING_BINDIR_CROSS}/guile-config
91 fi 91 fi
92} 92}
93
94# Guile needs the compiled files to be newer than the source, and it won't
95# auto-compile into the prefix even if it can write there, so touch them here as
96# sysroot is managed.
97SSTATEPOSTINSTFUNCS += "guile_sstate_postinst"
98guile_sstate_postinst() {
99 if [ "${BB_CURRENTTASK}" = "populate_sysroot" -o "${BB_CURRENTTASK}" = "populate_sysroot_setscene" ]
100 then
101 find ${STAGING_DIR_TARGET}/${libdir}/guile/2.0/ccache -type f | xargs touch
102 fi
103}