Package: src:ocl-icd Severity: important Dear Maintainer,
currently the virtual package libopencl1 is provided by ocl-icd-libopencl1, amd-libopencl1 and nvidia-libopencl1. (The intel one is not redistributable, but otherwise would also provide it.)
The problem is, that while ocl-icd and amd use versioned symbols (@OPENCL_*), nvidia and intel do not (@BASE). This leads to link-time errors, when a library is build with a libopencl1-provider that uses versioned symbols, and then this library is used to compile another program, while a libopencl1-provider with unversioned symbols is installed.
For example, if FFmpeg is build against ocl-icd-opencl-dev and then amarok is build against FFmpeg with nvidia-libopencl1 installed, one gets errors like: //usr/lib/x86_64-linux-gnu/libavutil.so.152: undefined reference to `clReleaseMemObject@OPENCL_1.0'
To prevent this, all libopencl1-provider should use versioned symbols (or alternatively all should use unversioned symbols). Since nvidia uses unversioned symbols, while amd and ocl-icd use versioned ones, probably nvidia should not provide libopencl1. As intel also uses unversioned symbols (but is currently not distributable), maybe they both could provide something like libopencl-unversioned1 instead.
Best regards, Andreas -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org