[Vm-dev] GCC version > 4.4

gettimothy gettimothy at zoho.com
Fri Dec 12 16:10:38 UTC 2014


This is the same error I was/am getting. 




bash-4.2$ gcc --version
gcc (GCC) 4.8.2
Copyright (C) 2013 Free Software Foundation, Inc.


My "fix" did not carry over to debug types other than for buildType build. I will be investigating after I get a pure Linux 32 bit configuration and associated help pushed for CMakeVMakerSqueak.




Below is an email I sent to the board a few weeks ago; perhaps somebody will know what the issue is. 


-----------------begin previous email-------------


In Cog/src/vm/cogit.c in moving the #include "dispdbg.h" above the #include "cointerp.h" and #include "cogit.h" like so:




#include <stddef.h>
#include "sq.h"
#include "sqCogStackAlignment.h"
#include "cogmethod.h"
#include "dispdbg.h"
#if COGMTVM
#include "cointerpmt.h"
#else
#include "cointerp.h"
#endif
#include "cogit.h"
 

appears to solve the problem. 


My initial thinking is a so.


dispdg.h brings in sqAssert.h which defines PRODUCTION as 1 or 0 depending on CFLAGS passed in.


With dispbdg.h included after cogit.h, PRODUCTION  was not defined and the tests in cogit.h



#if !PRODUCTION && defined(__GNUC__) && !defined(NoDbgRegParms)
# define NoDbgRegParms __attribute__ ((regparm (0)))
#endif

#if !defined(NoDbgRegParms)
# define NoDbgRegParms /*empty*/
#endif
 


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 (: ).


In the ....../build/vm/Makefile, $(interp)?.o is generated prior to cogit.o.
gcc3x-cointerp.c includes sqAssert.h via dispdg.h prior to the cogit.h and cointerp.h included.
This PRODUCTION is set 0 or 1 and NoDbgRegParms is defined one way or the other.
cpp then pre-processes cogit.h. 
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.
This was the bug I was tracking down.


I leave it to the more experienced to judge the correctness of the forensics.


cheers.


tty.





 


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20141212/33e9f434/attachment.htm


More information about the Vm-dev mailing list