<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jul 31, 2014 at 6:48 AM, gettimothy <span dir="ltr"><<a href="mailto:gettimothy@zoho.com" target="_blank">gettimothy@zoho.com</a>></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 Eliot.<br></div><div>
<br></div><div>What/where sets the PRODUCTION and NoDbgRegParms variables in the #if !PRODUCTION && defined(__GNUC__) && !defined(NoDbgRegParms) check ?</div></div></div></blockquote><div><br></div><div>PRODUCTION is defined in platforms/Cross/vm/sqAssert.h</div>
<div><br></div><div>The !defined(<span class="Apple-style-span" style="font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px">NoDbgRegParms) phrase allows someone to define an alternative on the command line via a -D argument, so it allows the</span></div>
<div><span class="Apple-style-span" style="font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px"> # define NoDbgRegParms __attribute__ ((regparm (0)))</span></div><div><span class="Apple-style-span" style="font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px">def to be a default, rather thna the only way.</span></div>
<div><span class="Apple-style-span" style="font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px"><br></span></div><div><span class="Apple-style-span" style="font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px"><br>
</span></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="font-size:10pt;font-family:Verdana,Arial,Helvetica,sans-serif"><div><br></div><div>Are they set by 'somewhere' by various -D flags in the mvm? I have grepped to no avail. </div>
<div><br></div><div>Here is my thinking at the moment. The compiler error is showing that the NoDbgRegParms is not being replaced. </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> /home/wm/usr/src/smalltalk/CMake.oscog/cogVMMaker/Contents/Resources/oscogvm/src/vm/cogit.c:1071:13: note: previous declaration of 'ssAllocateRequiredRegMaskupThrough' was here<br> static void ssAllocateRequiredRegMaskupThrough(sqInt requiredRegsMask, sqInt stackPtr) <strong>NoDbgRegParms</strong>;<br>
^<br>/home/wm/usr/src/smalltalk/CMake.oscog/cogVMMaker/Contents/Resources/oscogvm/src/vm/cogit.c:20947:1: error: conflicting types for 'ssAllocateRequiredReg'<br> ssAllocateRequiredReg(sqInt requiredReg)</div>
</blockquote><br> <br><br>So the question becomes "why not".</div><div><br></div><div>Well, because the pre-processor (?) is not replacing them. Why? hmmmm....</div></div></div></blockquote><div><br></div><div>Both gcc -v & gcc -E can help debug these kinds of things.</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="font-size:10pt;font-family:Verdana,Arial,Helvetica,sans-serif"><div>thx for your time.<br>
</div><div><br></div><div>tty</div></div></div></blockquote></div>-- <br>Aloha,<div>Eliot</div>
</div></div>