> 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

Attachment: patch2.diff
Description: Binary data

_______________________________________________
PyOpenCL mailing list
[email protected]
http://lists.tiker.net/listinfo/pyopencl

Reply via email to