[Vm-dev] GCC version > 4.4

Esteban Lorenzano estebanlm at gmail.com
Fri Dec 12 13:28:33 UTC 2014


I’m using 4.6.3 in an ubuntu 12.04 and works fine for me. 

Esteban

> On 12 Dec 2014, at 14:22, Norbert Hartl <norbert at hartl.name> wrote:
> 
> 
> I tried to compile the vm with a newer gcc than 4.4. It didn't work with 4.9 and I tested 4.8 and 4.7 which do not work either. The last one I was successful was 4.4. Trying to compile it gives an error about conflicting types. Looking into brought to the signature of procedures in cogit.c. Here we have something like
> 
> static sqInt abstractRegisterForConcreteRegister(AbstractInstruction * self_in_abstractRegisterForConcreteRegister, sqInt reg) NoDbgRegParms;
> 
> and the definition is
> 
> static sqInt
> abstractRegisterForConcreteRegister(AbstractInstruction * self_in_abstractRegisterForConcreteRegister, sqInt reg)
> {
> 
> It seems that the NoDbgRegParms is changing the game. So I assume the signatures have to be exactly the same. Putting NoDbgRegParms after the parentheses in the definition does not work. So I changed both to have it in front like
> 
> NoDbgRegParms static sqInt abstractRegisterForConcreteRegister(AbstractInstruction * self_in_abstractRegisterForConcreteRegister, sqInt reg);
> 
> and
> 
> NoDbgRegParms static sqInt
> abstractRegisterForConcreteRegister(AbstractInstruction * self_in_abstractRegisterForConcreteRegister, sqInt reg)
> {
> 
> and this compiles for me. So two questions:
> 
> - am I write with my assumption and is the change a valid solution for the problem
> - if yes will you change it or should I give it a try. It will take some time for me to figure out where that is exactly in the VMMaker code and I assume that it is a no-brainer for someone developing actively with VMMaker
> 
> regards,
> 
> Norbert



More information about the Vm-dev mailing list