Christian Tismer wrote:
Hi all,I was hacking to get mingw32 builds of psyco to work and found a pretty weird thing: I used mingw32 (stable distro) to build the psyco extension on top of standard python2.6, built with Visual Studio, and got weird crashes. The reason is in objimpl.h: typedef union _gc_head { struct { union _gc_head *gc_next; union _gc_head *gc_prev; Py_ssize_t gc_refs; } gc; long double dummy; /* force worst-case alignment */ } PyGC_Head; Mingw32 behaves funny here. The size of long double is 12 ! 8-)
No it is correct. GNU C compiler for windows support 80-bit extended precision.
I happened to use the _PyObject_GC_UNTRACK macro in psyco, instead of the function, and that caused the errors, because psython and the extension disagreed on the location of the gc pointers... Using PyObject_GC_Untrack instead fixed the problem, but there is a bad feeling left. Question: Is that considered a mingw bug?
No as sizeof(long double) = sizeof(double) is MSVC limitation.
Should we change the above union to a safer construct? Or maybe I just missed something obvious and made a fool out of me? cheers - chris
Regards, Roumen _______________________________________________ Python-Dev mailing list [email protected] http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com
