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

Reply via email to