[Vm-dev] GCC version > 4.4

Tobias Pape Das.Linux at gmx.de
Fri Dec 12 13:33:59 UTC 2014


Hi Norbert
On 12.12.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;

I recall timothy having the same problem during CMakification.
So maybe he has more information (or the information that gcc >4.4 does not
work helps him)

Best
	-Tobias


> 
> 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