Bug#763655: boinc-amd-opencl: wrong dependencies regarding OpenCL

Gianfranco Costamagna costamagnagianfranco at yahoo.it
Thu Oct 2 08:18:14 UTC 2014


Hi Vincent and Andrei (thanks for your help in making BTS notify us the bug).

The graphic stuff is something that worries me a lot, unfortunately the delta between debian/ubuntu, and the lack of a proper dev package to link against is something that makes me having *many* difficulties in fixing the problem.
(honestly my focus now is for the upcoming freeze, and I almost gave up on this because of the lack of time to look and ask for proper help)

Unfortunately the shlibs stuff I don't think can work, since upstream doesn't link the gpu libraries, but uses dlopen to handle them.

grep dlopen client -R
./gpu_nvidia.cpp:    handle  = dlopen("libnvidia-ml.so", RTLD_NOW);
./gpu_nvidia.cpp:    cudalib = dlopen("libcuda.so", RTLD_NOW);
./gpu_amd.cpp:    callib = dlopen("libaticalrt.so", RTLD_NOW);
./gpu_opencl.cpp:    opencl_lib = dlopen("libOpenCL.so", RTLD_NOW);


so this is why we added the libraries manually in the control file.

This dlopen stuff I think is also preventing gpu to be found when the service starts before the graphic module, leading to a needs of a service reboot to correctly find the gpu stuff. (cfr lp: #933354 #1177433 #1077316)

I'm open to help, I don't really know how to properly handle the dlopen stuff

on debian:

apt-file search libnvidia-ml.so
libnvidia-ml1: /usr/lib/x86_64-linux-gnu/libnvidia-ml.so
libnvidia-ml1: /usr/lib/x86_64-linux-gnu/libnvidia-ml.so.1
libnvidia-ml1: /usr/lib/x86_64-linux-gnu/libnvidia-ml.so.340.32
pcp-testsuite: /var/lib/pcp/testsuite/src/libnvidia-ml.so

apt-file search libcuda.so     
libcuda1: /usr/lib/x86_64-linux-gnu/libcuda.so
libcuda1: /usr/lib/x86_64-linux-gnu/libcuda.so.1
libcuda1: /usr/lib/x86_64-linux-gnu/libcuda.so.340.32

apt-file search libaticalrt.so
libfglrx: /usr/lib/x86_64-linux-gnu/libaticalrt.so
libfglrx-legacy: /usr/lib/x86_64-linux-gnu/libaticalrt.so

apt-file search libOpenCL.so
amd-libopencl1: /usr/lib/x86_64-linux-gnu/libOpenCL.so.1
amd-opencl-dev: /usr/lib/x86_64-linux-gnu/libOpenCL.so
nvidia-libopencl1: /usr/lib/x86_64-linux-gnu/libOpenCL.so.1
nvidia-libopencl1: /usr/lib/x86_64-linux-gnu/libOpenCL.so.1.0.0
nvidia-opencl-dev: /usr/lib/x86_64-linux-gnu/libOpenCL.so
ocl-icd-libopencl1: /usr/lib/x86_64-linux-gnu/libOpenCL.so.1
ocl-icd-libopencl1: /usr/lib/x86_64-linux-gnu/libOpenCL.so.1.0.0
ocl-icd-libopencl1: /usr/share/man/man7/libOpenCL.so.7.gz
ocl-icd-opencl-dev: /usr/lib/x86_64-linux-gnu/libOpenCL.so

on ubuntu:
apt-file search libnvidia-ml.so
nvidia-304: /usr/lib/nvidia-304/libnvidia-ml.so
nvidia-304: /usr/lib/nvidia-304/libnvidia-ml.so.1
nvidia-304: /usr/lib/nvidia-304/libnvidia-ml.so.304.117
nvidia-304: /usr/lib32/nvidia-304/libnvidia-ml.so
nvidia-304: /usr/lib32/nvidia-304/libnvidia-ml.so.1
nvidia-304: /usr/lib32/nvidia-304/libnvidia-ml.so.304.117
nvidia-304-updates: /usr/lib/nvidia-304-updates/libnvidia-ml.so
nvidia-304-updates: /usr/lib/nvidia-304-updates/libnvidia-ml.so.1
nvidia-304-updates: /usr/lib/nvidia-304-updates/libnvidia-ml.so.304.117
nvidia-304-updates: /usr/lib32/nvidia-304-updates/libnvidia-ml.so
nvidia-304-updates: /usr/lib32/nvidia-304-updates/libnvidia-ml.so.1
nvidia-304-updates: /usr/lib32/nvidia-304-updates/libnvidia-ml.so.304.117
nvidia-331: /usr/lib/nvidia-331/libnvidia-ml.so
nvidia-331: /usr/lib/nvidia-331/libnvidia-ml.so.1
nvidia-331: /usr/lib/nvidia-331/libnvidia-ml.so.331.38
nvidia-331: /usr/lib32/nvidia-331/libnvidia-ml.so
nvidia-331: /usr/lib32/nvidia-331/libnvidia-ml.so.1
nvidia-331: /usr/lib32/nvidia-331/libnvidia-ml.so.331.38
nvidia-331-updates: /usr/lib/nvidia-331-updates/libnvidia-ml.so
nvidia-331-updates: /usr/lib/nvidia-331-updates/libnvidia-ml.so.1
nvidia-331-updates: /usr/lib/nvidia-331-updates/libnvidia-ml.so.331.38
nvidia-331-updates: /usr/lib32/nvidia-331-updates/libnvidia-ml.so
nvidia-331-updates: /usr/lib32/nvidia-331-updates/libnvidia-ml.so.1
nvidia-331-updates: /usr/lib32/nvidia-331-updates/libnvidia-ml.so.331.38

apt-file search libcuda.so
libcuda1-304: /usr/lib/i386-linux-gnu/libcuda.so
libcuda1-304: /usr/lib/i386-linux-gnu/libcuda.so.1
libcuda1-304: /usr/lib/i386-linux-gnu/libcuda.so.304.117
libcuda1-304: /usr/lib/x86_64-linux-gnu/libcuda.so
libcuda1-304: /usr/lib/x86_64-linux-gnu/libcuda.so.1
libcuda1-304: /usr/lib/x86_64-linux-gnu/libcuda.so.304.117
libcuda1-304-updates: /usr/lib/i386-linux-gnu/libcuda.so
libcuda1-304-updates: /usr/lib/i386-linux-gnu/libcuda.so.1
libcuda1-304-updates: /usr/lib/i386-linux-gnu/libcuda.so.304.117
libcuda1-304-updates: /usr/lib/x86_64-linux-gnu/libcuda.so
libcuda1-304-updates: /usr/lib/x86_64-linux-gnu/libcuda.so.1
libcuda1-304-updates: /usr/lib/x86_64-linux-gnu/libcuda.so.304.117
libcuda1-331: /usr/lib/i386-linux-gnu/libcuda.so
libcuda1-331: /usr/lib/i386-linux-gnu/libcuda.so.1
libcuda1-331: /usr/lib/i386-linux-gnu/libcuda.so.331.38
libcuda1-331: /usr/lib/x86_64-linux-gnu/libcuda.so
libcuda1-331: /usr/lib/x86_64-linux-gnu/libcuda.so.1
libcuda1-331: /usr/lib/x86_64-linux-gnu/libcuda.so.331.38
libcuda1-331-updates: /usr/lib/i386-linux-gnu/libcuda.so
libcuda1-331-updates: /usr/lib/i386-linux-gnu/libcuda.so.1
libcuda1-331-updates: /usr/lib/i386-linux-gnu/libcuda.so.331.38
libcuda1-331-updates: /usr/lib/x86_64-linux-gnu/libcuda.so
libcuda1-331-updates: /usr/lib/x86_64-linux-gnu/libcuda.so.1
libcuda1-331-updates: /usr/lib/x86_64-linux-gnu/libcuda.so.331.38

apt-file search libaticalrt.so
fglrx: /usr/lib/fglrx/libaticalrt.so
fglrx: /usr/lib/pxpress/lib/libaticalrt.so
fglrx: /usr/lib32/fglrx/libaticalrt.so
fglrx: /usr/lib32/pxpress/lib/libaticalrt.so
fglrx-updates: /usr/lib/fglrx/libaticalrt.so
fglrx-updates: /usr/lib/pxpress/lib/libaticalrt.so
fglrx-updates: /usr/lib32/fglrx/libaticalrt.so
fglrx-updates: /usr/lib32/pxpress/lib/libaticalrt.so

apt-file search libOpenCL.so
fglrx: /usr/lib/fglrx/libOpenCL.so
fglrx: /usr/lib/fglrx/libOpenCL.so.1
fglrx: /usr/lib/pxpress/lib/libOpenCL.so
fglrx: /usr/lib/pxpress/lib/libOpenCL.so.1
fglrx: /usr/lib32/fglrx/libOpenCL.so.1
fglrx: /usr/lib32/pxpress/lib/libOpenCL.so.1
fglrx-updates: /usr/lib/fglrx/libOpenCL.so
fglrx-updates: /usr/lib/fglrx/libOpenCL.so.1
fglrx-updates: /usr/lib/pxpress/lib/libOpenCL.so
fglrx-updates: /usr/lib/pxpress/lib/libOpenCL.so.1
fglrx-updates: /usr/lib32/fglrx/libOpenCL.so.1
fglrx-updates: /usr/lib32/pxpress/lib/libOpenCL.so.1
nvidia-libopencl1-304: /usr/lib/i386-linux-gnu/libOpenCL.so
nvidia-libopencl1-304: /usr/lib/i386-linux-gnu/libOpenCL.so.1
nvidia-libopencl1-304: /usr/lib/i386-linux-gnu/libOpenCL.so.1.0
nvidia-libopencl1-304: /usr/lib/i386-linux-gnu/libOpenCL.so.1.0.0
nvidia-libopencl1-304: /usr/lib/x86_64-linux-gnu/libOpenCL.so
nvidia-libopencl1-304: /usr/lib/x86_64-linux-gnu/libOpenCL.so.1
nvidia-libopencl1-304: /usr/lib/x86_64-linux-gnu/libOpenCL.so.1.0
nvidia-libopencl1-304: /usr/lib/x86_64-linux-gnu/libOpenCL.so.1.0.0
nvidia-libopencl1-304-updates: /usr/lib/i386-linux-gnu/libOpenCL.so
nvidia-libopencl1-304-updates: /usr/lib/i386-linux-gnu/libOpenCL.so.1
nvidia-libopencl1-304-updates: /usr/lib/i386-linux-gnu/libOpenCL.so.1.0
nvidia-libopencl1-304-updates: /usr/lib/i386-linux-gnu/libOpenCL.so.1.0.0
nvidia-libopencl1-304-updates: /usr/lib/x86_64-linux-gnu/libOpenCL.so
nvidia-libopencl1-304-updates: /usr/lib/x86_64-linux-gnu/libOpenCL.so.1
nvidia-libopencl1-304-updates: /usr/lib/x86_64-linux-gnu/libOpenCL.so.1.0
nvidia-libopencl1-304-updates: /usr/lib/x86_64-linux-gnu/libOpenCL.so.1.0.0
nvidia-libopencl1-331: /usr/lib/i386-linux-gnu/libOpenCL.so.1
nvidia-libopencl1-331: /usr/lib/i386-linux-gnu/libOpenCL.so.1.0
nvidia-libopencl1-331: /usr/lib/i386-linux-gnu/libOpenCL.so.1.0.0
nvidia-libopencl1-331: /usr/lib/x86_64-linux-gnu/libOpenCL.so.1
nvidia-libopencl1-331: /usr/lib/x86_64-linux-gnu/libOpenCL.so.1.0
nvidia-libopencl1-331: /usr/lib/x86_64-linux-gnu/libOpenCL.so.1.0.0
nvidia-libopencl1-331-updates: /usr/lib/i386-linux-gnu/libOpenCL.so.1
nvidia-libopencl1-331-updates: /usr/lib/i386-linux-gnu/libOpenCL.so.1.0
nvidia-libopencl1-331-updates: /usr/lib/i386-linux-gnu/libOpenCL.so.1.0.0
nvidia-libopencl1-331-updates: /usr/lib/x86_64-linux-gnu/libOpenCL.so.1
nvidia-libopencl1-331-updates: /usr/lib/x86_64-linux-gnu/libOpenCL.so.1.0
nvidia-libopencl1-331-updates: /usr/lib/x86_64-linux-gnu/libOpenCL.so.1.0.0
nvidia-opencl-dev: /usr/lib/x86_64-linux-gnu/libOpenCL.so
ocl-icd-libopencl1: /usr/lib/x86_64-linux-gnu/libOpenCL.so
ocl-icd-libopencl1: /usr/lib/x86_64-linux-gnu/libOpenCL.so.1
ocl-icd-libopencl1: /usr/lib/x86_64-linux-gnu/libOpenCL.so.1.0.0
ocl-icd-libopencl1: /usr/share/man/man7/libOpenCL.so.7.gz


Do you have any advice for me?
the whole boinc community will benefit a lot from this bug fix, since GPUs are more powerful on computation even than CPUs :)


have many thanks for the help,


Gianfranco



More information about the pkg-boinc-devel mailing list