[Ecls-list] Problems with -fomit-frame-pointer (Was Compilation under MinGW32 failed)

Goffioul Michael goffioul at imec.be
Thu Oct 14 03:29:23 UTC 2004


I know, but MSVC6 is not the best and most compliant C/C++ compiler
in the world... ;-)
When I tried first with mingw32, compilation process failed exactly
at the same loading point, however I don't know if it has the same
cause. But at least you can have a look at structure alignment also
under mingw32. I didn't check if this change also solved the problem
under mingw32.

Michael.

> >I don't know if the following has the same origin, but here's
> >something that might guide you in finding the problem. [...]
> >Then came the origin of this problem: structure bytes alignment. The
> >HEADER4 part of ecl_symbol structure was not 4-bytes large, but
> >8-bytes, such that sizeof(struct ecl_symbol) == 28 (instead of 24).
> >Hence Cnil->cons.cdr didn't return Cnil, as expected, but NULL.
> >Under MSVC6, I changed HEADER4 to:
> >#define HEADER4(field1,flag2,flag3,flag4) int8_t t, m, 
> field1; unsigned char flag2:4, flag3:2, flag4:2
> >and it solved the problem.
> >  
> >
> This is somehow werrd. I do not really understand what difference it 
> makes to use "char" here. After all, the compiler should choose an 
> integer type in which everything fits. I will check that this 
> does not 
> break any other architecture, and commit the patch.
> 
> Regards
> 
> Juanjo
> 




More information about the ecl-devel mailing list