> Am 26.08.2015 um 16:37 schrieb Andreas Kloeckner <[email protected]>: > > Am 2015-08-26 03:21, schrieb Gregor Thalhammer: > >> I am glad to report that I finally managed to build recent pyopencl >> master on Windows 7 (64bit), with Anaconda Python 2.7 (64bit), and >> wrapper tests pass. >> Here a summary of the issues I encountered: >> * Building with Microsoft Visual Studio 2008 is hopeless, it misses >> all the new C++ features (even the integer types such as uint64_t) >> used throughout pyopencl. >> * Instead I used the mingw compiler toolchain (carlkl/mingwpy 0.1.0b3 >> from binstar, gcc 4.9.2, x86_64-win32-seh-rev201506), with CXXFLAGS >> -std=c++11, (also c++0x is ok) and compiling with >> python setup.py build_ext -—compiler=mingw32 >> * This toolchain, built with win32 thread support, does not support >> std::mutex or std::thread. One solution I found is to use >> https://github.com/meganz/mingw-std-threads [2] >> which provides the missing functions. In debug.h I added >> #include "mingw.mutex.h" >> #include "mingw.thread.h" >> * In pyopencl the OpenCL constants end up as int attributes of Python >> classes. However, on Windows a Python int is only 32bit, too small to >> hold e.g. device_type.ALL, which is defined with a value of 0xFFFFFFFF >> (but got wrapped to -1, which evokes errors). >> In wrap_constants.cpp I changed the signature for the last argument >> (value) of populate_constants() from long to unsigned long (actually, >> shouldn’t this be a cl_uint?) >> The changes I applied to the source are attached as a patch file. No >> idea if these are a proper way to resolve the issues, nor made I an >> attempt to make them platform specific. > > Hi Gregor, > > that is great news! Thank you very much for slogging through and making this > build on Windows. I have merged your patch into PyOpenCL, with some changes > to hopefully make it cross-platform. It does build on Linux. It would be > great if you could let me know if this also builds on MinGW unmodified. (And > if it doesn't, ideally submit any more changes in it that need to be made.) > Note that I included the supplemental threads headers as a git submodule, so > you may have to do "git submodule update --init" in order to pick up those > changes. > > Once again, thank you very much for your contribution. > > Andreas
Dear Andreas, you earn my big thanks for providing pyopencl and your continuing effort in improving it! Only a small modification (see attached patch) was necessary to successfully build on Windows with MinGW, the extra mingw headers need to be included in addition to <mutex>. Gregor
patch2.diff
Description: Binary data
_______________________________________________ PyOpenCL mailing list [email protected] http://lists.tiker.net/listinfo/pyopencl
