Hi all,
Today I managed to try tcc on win64 (i.e. tcc generates 64bit .exe)
I bootstrapped tcc with a recent gcc win64 and got a workable tcc that
compiles my OpenLisp quietly (www.eligis.com). It eventually runs but
crashes depending on jmp_buf stack alignment. Very often, I found that
64bits processors require that jmp_buf are aligned to 16 bytes boundary.
I checked with typedef _CRT_ALIGN(16) struct _JUMP_BUFFER with no success.
- Works:
#include <setjmp.h>
int
main()
{
jmp_buf buf;
setjmp( buf );
printf("%x\n", _JBLEN);
}
- Fails:
#include <setjmp.h>
int
main()
{
char *p; // add 8 bytes
jmp_buf buf;
setjmp( buf );
printf("%x\n", _JBLEN);
}
- Works
#include <setjmp.h>
int
main()
{
char *p; // add 8 bytes
char *p1; // add 8+8 = 16 bytes
jmp_buf buf;
setjmp( buf );
printf("%x\n", _JBLEN);
}
_______________________________________________
Tinycc-devel mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/tinycc-devel