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

Reply via email to