I have uploaded binary installers for python2.5 for win32 to the
website, but python2.6 is a different beast all together. I have been
trying to make Charlie's support work for mingw32 for windows in
release/win32 work, but have hit a huge wall. Apparently, mingw
doesn't play nicely with MSVCR90.DLL abd Charlie's hack to simply
remove it from the dll_libraries list doesn't work because _png.pyd
needs these functions and the mingw support is broken. The dirty
details are at
http://bugs.python.org/issue3308
http://www.nabble.com/localtime()-and-MSVCRT9-td18329478.html
numpy went through what looks like a painful experience with some of
these issues detailed at
http://www.mail-archive.com/numpy-discussion@...336.../msg14552.html
http://cournape.wordpress.com/2008/09/02/how-to-embed-a-manifest-into-a-dll-with-mingw-tools-only/
It looks like pygame is going to extreme lengths to work around these
problems, as you can see in this code
I've burnt a lot of time chasing false leads before I finally figured
out where the root of the problem is, and it appears to be in the
broken gmtime/localtime support in mingw and MSVCR90.DLL. I have
narrowed the segfault to png_write_info(png_ptr, info_ptr), and since
I believe png uses time support in the info processing, my guess is
this is where the code is failing, but my attempts to build libpng w/o
time support as a quick workaround
CFLAGS = -Os -D_ftime=ftime64 -DPNG_NO_READ_tIME -DPNG_NO_WRITE_tIME
have not helped (this was mainly a stab in the dark from poking around
the png headers and src)
There are a variety of solutions offered in the links above ranging
from rebuilding a patched mingw from src to the approach taken by
pygame. Since the rest of mpl is working fine, I was hoping to simply
hack around the broken part of libpng itself (eg removing the time
calls) but have not succeeded yet. Unfortunately, I won't have a lot
more time to spend on this in the near future, so I was hoping that
someone with a fresh pair of eyes and a little time could find a
solution.
If you can take a look, to get started check out release/win32 from
the TRUNK and build the sdist from the branch with
> python setup.py sdist --formats=gztar
Drop the tar.gz into release/win32 and then following the instructions
in release/win32/README.txt
Thanks,
JDH