<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugzilla.yoctoproject.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugzilla.yoctoproject.org/"
          
          maintainer="it-coreprojects-helpdesk@linuxfoundation.org"
>

    <bug>
          <bug_id>3370</bug_id>
          
          <creation_ts>2012-10-31 11:30:18 +0000</creation_ts>
          <short_desc>guile-native cannot be restored from sstate</short_desc>
          <delta_ts>2012-12-06 16:11:12 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>7</classification_id>
          <classification>Build System, Metadata &amp; Runtime</classification>
          <product>OE-Core</product>
          <component>devtools / tool chain</component>
          <version>1.3</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Multiple</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard>(Patch Review)</status_whiteboard>
          <keywords></keywords>
          <priority>Medium+</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>1.4</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ross Burton">ross.burton</reporter>
          <assigned_to name="Ross Burton">ross.burton</assigned_to>
          <cc>meta.mr.watcher</cc>
    
    <cc>meta.watcher</cc>
    
    <cc>richard.purdie</cc>
    
    <cc>sgw</cc>
          
          
          <cf_os>---</cf_os>
          <cf_regression_type>---</cf_regression_type>
          
          <cf_docchange>---</cf_docchange>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>27100</commentid>
    <comment_count>0</comment_count>
    <who name="Ross Burton">ross.burton</who>
    <bug_when>2012-10-31 11:30:18 +0000</bug_when>
    <thetext>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 &apos;&lt;&apos; has no left operand
In file included from autogen.h:40:0,
                 from ag.c:8:
expr.h:28:19: error: operator &apos;&gt;=&apos; 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 &quot;newer&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27706</commentid>
    <comment_count>1</comment_count>
    <who name="Saul Wold">sgw</who>
    <bug_when>2012-11-26 23:49:41 +0000</bug_when>
    <thetext>Escaltating this because we are seeing failures in meta-intel</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27724</commentid>
    <comment_count>2</comment_count>
    <who name="Ross Burton">ross.burton</who>
    <bug_when>2012-11-27 13:02:10 +0000</bug_when>
    <thetext>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&apos;t find any further upstream for it).

This test is *amazing*.

Step one is to call &quot;dpkg --list | egrep guile-[0-9.]-dev&quot;.  So that&apos;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.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27744</commentid>
    <comment_count>3</comment_count>
    <who name="Ross Burton">ross.burton</who>
    <bug_when>2012-11-27 16:37:17 +0000</bug_when>
    <thetext>I&apos;ve fixed autogen which was being *absolutely crazy*.

To ensure this is fixed for good, guile shouldn&apos;t stash the compiled forms into sstate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27746</commentid>
    <comment_count>4</comment_count>
    <who name="Ross Burton">ross.burton</who>
    <bug_when>2012-11-27 17:32:05 +0000</bug_when>
    <thetext>Turns out you can&apos;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.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27821</commentid>
    <comment_count>5</comment_count>
    <who name="Ross Burton">ross.burton</who>
    <bug_when>2012-11-29 12:04:42 +0000</bug_when>
    <thetext>Patch submitted to oe-core.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28060</commentid>
    <comment_count>6</comment_count>
    <who name="Ross Burton">ross.burton</who>
    <bug_when>2012-12-06 16:11:12 +0000</bug_when>
    <thetext>Fixed in oe-core cb8fbc332f730cbb4d9c9866ee7b95d62245d121 (and backported to danny-next).</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>