This question is regarding the “nvcomputesdk_opencl1.0-beta1_linux.run” beta on RHL 5.2, x86_64.
I followed the instructions given in "OpenCL_Release_Notes_Linux.txt to include installing the CUDA 2.2 drivers (185.18.08). In section II (Installation) under step 6 (Build) I encountered an error as follows:
After running ’ nm -D -C /usr/lib64/libstdc++.so.6.0.8 | grep _M_insert’, it confirmed that the linker was indeed giving up because it couldn’t find _M_insert<void const*>(void const*).
Could the issue be that the included libOpenCL.so uses _M_insert<void const*>(void const*) which is not part of the public API?
[Note: The system is RHL 5.2 vs the required RHL 5.3. ]
It seems likely the developers building Beta 1’s libOpenCL.so are linking against a version of libstdc++.so.6 that contains _M_insert<void *const>…
Section II, part 8 of OpenCL_Release_Notes_Linux.txt indicates successful testing was achieved with 32 and 64 versions of Ubuntu 8.1 in single and dual GPU configurations. Initram’s later post confirms this success.
The issue seems to be that there is a slight difference between the supporting libstdc++.so (s). Checking the symbols exported by libstdc++.so.6.0.8 under RHL 8.3 yields the following:
Comparing the error listed in the original post to the above symbol search indicates that the two underlying libstdc++.so (s) are different. The difference is that classes basic_istream and basic_ostream in RHL 8.3 x86_64 do not have support for the use of …_M_insert<void *const>
We have the same problems on various RHEL machines here too… I’ve filed a bug on this since it makes the SDK samples unusable as aids in verifying and reporting other bugs I’m finding…
platform: SUSE Linux Enterprise Server 10 Service Pack 2
uname -a: Linux gvs1 2.6.16.60-0.34-smp #1 SMP Fri Jan 16 14:59:01 UTC 2009 x86_64 x86_64 x86_64 GNU/Linux
version: nvcomputesdk_opencl1.0-beta1.2_linux.run
my temporary solution is to compile the sdk under 64bit ubuntu and to copy the folder to the suse linux computer. then i had to copy the libstdc++* files to the suse linux computer and to set LD_LIBRARY_PATH to the path of the ubuntu libstdc++* files.
The fix is to install the 4.3 version of the gcc and g++ compilers that are included with the Red Hat and Centos distributions. On Centos the commands are:
yum install gcc43
yum install gcc43-c++
Next edit the Compiler definitions in common/common_opencl.mk so that CXX, CC and LINK are defined as follows:
Sorry for the problem. I did install on RHEL 5.2 but I pulled the package from a RHEL 5.3 DVD. The same packages are available on the web for Centos. You do not need to upgrade the rest of your OS to use the gcc43 and gcc43-c++ packages.