[Ecls-list] Problems with -fomit-frame-pointer (Was Compilation under MinGW32 failed)
Juan Jose Garcia Ripoll
lisp at arrakis.es
Thu Oct 14 03:22:45 UTC 2004
Goffioul Michael wrote:
>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.
More information about the ecl-devel