<div dir="ltr">Hi Tim,<div><br></div><div>    great, you found it!  Sorry for not getting to this sooner.  I will fix this today.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Nov 22, 2014 at 10:14 AM, gettimothy <span dir="ltr">&lt;<a href="mailto:gettimothy@zoho.com" target="_blank">gettimothy@zoho.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> <br><u></u><div><div style="font-size:10pt;font-family:Verdana,Arial,Helvetica,sans-serif"><div>Hi all.<br></div><div><br></div><div><br></div><div>In Cog/src/vm/cogit.c in moving the #include &quot;dispdbg.h&quot; above the #include &quot;cointerp.h&quot; and #include &quot;cogit.h&quot; like so:<br></div><div><br></div><div><br><blockquote style="border-top-color:rgb(204,204,204);border-left-color:rgb(204,204,204);border-right-color:rgb(204,204,204);border-bottom-color:rgb(204,204,204);border-top-width:1px;border-left-width:1px;border-right-width:1px;border-bottom-width:1px;border-top-style:solid;border-left-style:solid;border-right-style:solid;border-bottom-style:solid;padding-top:7px;padding-right:7px;padding-bottom:7px;padding-left:7px;background-color:rgb(245,245,245)"><div>#include &lt;stddef.h&gt;<br>#include &quot;sq.h&quot;<br>#include &quot;sqCogStackAlignment.h&quot;<br>#include &quot;cogmethod.h&quot;<br>#include &quot;dispdbg.h&quot;<br>#if COGMTVM<br>#include &quot;cointerpmt.h&quot;<br>#else<br>#include &quot;cointerp.h&quot;<br>#endif<br>#include &quot;cogit.h&quot;<br> </div></blockquote><br>appears to solve the problem. </div><div><br></div><div>My initial thinking is a so.</div><div><br></div><div>dispdg.h brings in sqAssert.h which defines PRODUCTION as 1 or 0 depending on CFLAGS passed in.</div><div><br></div><div>With dispbdg.h included after cogit.h, PRODUCTION  was not defined and the tests in cogit.h</div><div><br></div><div><br><blockquote style="border-top-color:rgb(204,204,204);border-left-color:rgb(204,204,204);border-right-color:rgb(204,204,204);border-bottom-color:rgb(204,204,204);border-top-width:1px;border-left-width:1px;border-right-width:1px;border-bottom-width:1px;border-top-style:solid;border-left-style:solid;border-right-style:solid;border-bottom-style:solid;padding-top:7px;padding-right:7px;padding-bottom:7px;padding-left:7px;background-color:rgb(245,245,245)"><div>#if !PRODUCTION &amp;&amp; defined(__GNUC__) &amp;&amp; !defined(NoDbgRegParms)<br># define NoDbgRegParms __attribute__ ((regparm (0)))<br>#endif<br><br>#if !defined(NoDbgRegParms)<br># define NoDbgRegParms /*empty*/<br>#endif<br> </div></blockquote><br></div><div>My conjecture is as follows (I am NOT fluent in the semantics of cpp, just a script kiddy who bit the bullet and rtfm this week (: ).</div><div><br></div><div>In the ....../build/vm/Makefile, $(interp)?.o is generated prior to cogit.o.</div><div>gcc3x-cointerp.c includes sqAssert.h via dispdg.h prior to the cogit.h and cointerp.h included.</div><div>This PRODUCTION is set 0 or 1 and NoDbgRegParms is defined one way or the other.</div><div>cpp then pre-processes cogit.h. </div><div>At this point, I lose track of the semantics, but I deduce that NoDbgRegParms IS defined from the gcc3x-cointerp.c parse so NoDbgRegParms is left as is in the cogit.c file.</div><div>This was the bug I was tracking down.</div><div><br></div><div>I leave it to the more experienced to judge the correctness of the forensics.</div><div><br></div><div>cheers.</div><div><br></div><div>tty.</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div></div><br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">best,<div>Eliot</div></div>
</div>