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