diff options
| author | Ross Burton <ross.burton@intel.com> | 2012-11-28 17:28:39 +0000 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-12-03 13:52:08 +0000 |
| commit | 2e6924e74dded0ab8ea0dfd65d9b20563a205b94 (patch) | |
| tree | 5223cf95985c1efb2c50cdadd96f6fd95392fd19 | |
| parent | 48db13e7a5f9416c6aa871389f7b470002d346fa (diff) | |
| download | poky-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>
| -rw-r--r-- | meta/recipes-devtools/guile/guile_2.0.6.bb | 13 |
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 \ | |||
| 28 | SRC_URI[md5sum] = "3438cd4415c0c43ca93a20e845eba7e2" | 28 | SRC_URI[md5sum] = "3438cd4415c0c43ca93a20e845eba7e2" |
| 29 | SRC_URI[sha256sum] = "3ece055145a5020dd36b84f5fbccd4b3846a671960dd5ee55931555f03200950" | 29 | SRC_URI[sha256sum] = "3ece055145a5020dd36b84f5fbccd4b3846a671960dd5ee55931555f03200950" |
| 30 | 30 | ||
| 31 | PR = "r1" | 31 | PR = "r2" |
| 32 | 32 | ||
| 33 | inherit autotools gettext | 33 | inherit autotools gettext |
| 34 | BBCLASSEXTEND = "native" | 34 | BBCLASSEXTEND = "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. | ||
| 97 | SSTATEPOSTINSTFUNCS += "guile_sstate_postinst" | ||
| 98 | guile_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 | } | ||
