Build of OpenCL samples is successful, but all failed at runtime, as my own code on the same error :
sdevaux@nemes:/usr/share/doc/OpenCL-0.1-ibm/samples/perlin_noise/ppc$ ./perlin terminate called after throwing an instance of 'std::out_of_range' what(): basic_string::substr Abandon
gdb gives some details, the error occurs in clDeviceIDs host API call :
(gdb) bt #0 0x0fb659fc in raise () from /lib/libc.so.6 #1 0x0fb6b084 in abort () from /lib/libc.so.6 #2 0x0fdaf060 in __gnu_cxx::__verbose_terminate_handler () at ../../../../src/libstdc++-v3/libsupc++/vterminate.cc:93 #3 0x0fdac4e8 in __cxxabiv1::__terminate (handler=<value optimized out>) at ../../../../src/libstdc++-v3/libsupc++/eh_terminate.cc:38 #4 0x0fdac52c in std::terminate () at ../../../../src/libstdc++-v3/libsupc++/eh_terminate.cc:48 #5 0x0fdac558 in __cxxabiv1::__unexpected (handler=<value optimized out>) at ../../../../src/libstdc++-v3/libsupc++/eh_terminate.cc:54 #6 0x0fdab68c in __cxa_call_unexpected (exc_obj_in=<value optimized out>) at ../../../../src/libstdc++-v3/libsupc++/eh_personality.cc:753 #7 0x0ff42aa4 in ibm::openclHost::Platform::copyDeviceIDs(unsigned long long, std::vector<ibm::openclDevice::DeviceID*, std::allocator<ibm::openclDevice::DeviceID*> >&) () from /opt/OpenCL/lib/CL/debug/libCL.so.0 #8 0x0ff229cc in clGetDeviceIDs () from /opt/OpenCL/lib/CL/debug/libCL.so.0 #9 0x100017b4 in main (argc=<value optimized out>, argv=<value optimized out>) at ../src/perlin.c:366
I didn't expect success at first attempt since I manually installed rpms on my Ubuntu 10.04 PS3 and I know the package is tested only with Fedora. But install seems OK : ldd reports finding all dependencies.
It's probably distibution related but this kind of error may reveal a real bug, isn't it ?
Did anyone experienced the same and found a workaround ?