I just blew away my sysroot and let bitbake reconstruct it from sstate. Then I started getting funny compile errors in autogen-native... In file included from ag.c:8:0: autogen.h:33:19: error: operator '<' has no left operand In file included from autogen.h:40:0, from ag.c:8: expr.h:28:19: error: operator '>=' has no left operand expr.h:31:23: fatal error: guile/gh.h: No such file or directory compilation terminated. The missing left operand is GUILE_VERSION, so clearly that define was being expanded to the empty string. This define is set at configure time, and the log shows: checking whether the guile version... ;;; 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 ;;; note: source file /data/poky-master/tmp/sysroots/x86_64-linux/usr/share/guile/2.0/ice-9/r4rs.scm [...] ;;; newer than compiled /data/poky-master/tmp/sysroots/x86_64-linux/usr/lib/guile/2.0/ccache/ice-9/rdelim.go 2.0.6 expr: non-integer argument Those files have identical timestamps. I suspect the test in guile is considering identical timestamps as "newer".
Escaltating this because we are seeing failures in meta-intel
Oh my god I hate Guile so much. The check is implemented in autogen/config/ag_macros.m4 (which claims to be non-canonical but I can't find any further upstream for it). This test is *amazing*. Step one is to call "dpkg --list | egrep guile-[0-9.]-dev". So that's one potential host contamination. If that fails, it runs guile-config. This is implemented in guile (so gives the warning that causes the problem) but is actually just a wrapper around pkg-config, which should have been used all along.
I've fixed autogen which was being *absolutely crazy*. To ensure this is fixed for good, guile shouldn't stash the compiled forms into sstate.
Turns out you can't do that: ;;; 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 We need a way of hooking into post-sstate-extract to simple touch the compiled forms.
Patch submitted to oe-core.
Fixed in oe-core cb8fbc332f730cbb4d9c9866ee7b95d62245d121 (and backported to danny-next).