Following up:
I was able to get a working pyopencl build w/ icc by including the modified stdio.h as a work around for the icc 64-bit include issues.

For some reason when I ran:
>python setup.py install --prefix [loc]
Some of the python portions of the module were clobbered.

However if I used:
>python setup.py build
>python setup.py install --prefix [loc]

Everything worked as expected.

Thanks for all of your help!

-Cyrus



On 02/01/12 17:00, Cyrus Harrison wrote:
Hi Andreas,
I looked into this error further&  it appears this issue can occur when
using cstdio w/ icc when targeting 64-bit platforms.

Due to a cascade of macro issues fgetpos64, fopen64, etc are never
mapped to the standard names "fgetpos", "fopen", etc.

Here is a file someone created to get around the issue:

http://fossies.org/unix/www/squid-3.1.18.tar.gz:a/squid-3.1.18/compat/stdio.h

I was able to use this file&  hack my way though a build.

I changed various files in src/wrapper and in bpl_subset/lib/python to
include this file before any boost includes.
(This is clearly not a good general solution, but I wanted to see if
anything was lurking beyond this issue)

Everything seemed to go well&  the module installed, however something
is wrong with the final install (for example: the main __init__.py
exists, but is empty)

Getting closer - I should have time to pick this up again next week.

Thanks again for all of your help so far,
-Cyrus


On 01/31/12 18:40, Andreas Kloeckner wrote:
On Tue, 31 Jan 2012 12:08:42 -0800, Cyrus Harrison<[email protected]>   wrote:
Hi Andreas,
I found another missing file:

bpl-subset/bpl_subset/pyopenclboost/typeof/incr_registration_group.hpp(11):
catastrophic error: could not open source file
"boost/preprocessor/slot/counter.hpp"
     #   include<boost/preprocessor/slot/counter.hpp>
Added.

I added it + the "detail" subfolder&   I made it a bit further.
If you mean boost/preprocessor/slot/detail, that was already there for
me.

Now I am stuck here:

icc -pthread -m64 -fPIC -O3 -DNDEBUG (...) -c
src/wrapper/wrap_mempool.cpp -o
build/temp.linux-x86_64-2.6/src/wrapper/wrap_mempool.o


/usr/include/c++/4.1.2/cstdio(109): error: the global scope has no "fgetpos"
       using ::fgetpos;
               ^

/usr/include/c++/4.1.2/cstdio(111): error: the global scope has no "fopen"
       using ::fopen;
               ^

/usr/include/c++/4.1.2/cstdio(116): error: the global scope has no "freopen"
       using ::freopen;
               ^

/usr/include/c++/4.1.2/cstdio(119): error: the global scope has no "fsetpos"
       using ::fsetpos;
               ^

/usr/include/c++/4.1.2/cstdio(138): error: the global scope has no "tmpfile"
       using ::tmpfile;
Can you compile just a regular C++ file using<cstdio>? What's the
include path leading there? (If it's from pyopencl, we might be able to
simply switch to the<stdio.h>   C form.)

Andreas

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


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

Reply via email to