[Pkg-opencl-devel] Bug#994833: OpenCL programs abort when intel-opencl-icd is installed

Giuseppe Bilotta giuseppe.bilotta at gmail.com
Tue Sep 21 18:21:10 BST 2021


Package: intel-opencl-icd
Followup-For: Bug #994833

Downgrading ONLY intel-opencl-icd to version 20.44.18297-1 leads to a
different error:

Abort was called at 41 line in file:
/build/intel-compute-runtime-7vSeZ9/intel-compute-runtime-20.44.18297/shared/source/built_ins/built_ins.cpp
Aborted

Downgrading ALSO libigc1 and libigdfcl1 to version 1.0.5353.1-2 makes
the package usable again. This makes me suspect that the issue is in
those libraries instead.

Running clinfo with
OCL_ICD_VENDORS=/etc/OpenCL/vendors/intel.icd LD_DEBUG=libs
gives me the following 

=====
    342713:	find library=libOpenCL.so.1 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/libOpenCL.so.1
    342713:	
    342713:	find library=libdl.so.2 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/lib/x86_64-linux-gnu/libdl.so.2
    342713:	
    342713:	find library=libc.so.6 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/lib/x86_64-linux-gnu/libc.so.6
    342713:	
    342713:	
    342713:	calling init: /lib64/ld-linux-x86-64.so.2
    342713:	
    342713:	
    342713:	calling init: /lib/x86_64-linux-gnu/libc.so.6
    342713:	
    342713:	
    342713:	calling init: /lib/x86_64-linux-gnu/libdl.so.2
    342713:	
    342713:	
    342713:	calling init: /usr/lib/x86_64-linux-gnu/libOpenCL.so.1
    342713:	
    342713:	
    342713:	initialize program: clinfo
    342713:	
    342713:	
    342713:	transferring control: clinfo
    342713:	
    342713:	find library=libpthread.so.0 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/lib/x86_64-linux-gnu/libpthread.so.0
    342713:	
    342713:	find library=libigdgmm.so.11 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/libigdgmm.so.11
    342713:	
    342713:	find library=libstdc++.so.6 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/libstdc++.so.6
    342713:	
    342713:	find library=libm.so.6 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/lib/x86_64-linux-gnu/libm.so.6
    342713:	
    342713:	find library=libgcc_s.so.1 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/lib/x86_64-linux-gnu/libgcc_s.so.1
    342713:	
    342713:	
    342713:	calling init: /lib/x86_64-linux-gnu/libpthread.so.0
    342713:	
    342713:	
    342713:	calling init: /lib/x86_64-linux-gnu/libgcc_s.so.1
    342713:	
    342713:	
    342713:	calling init: /lib/x86_64-linux-gnu/libm.so.6
    342713:	
    342713:	
    342713:	calling init: /usr/lib/x86_64-linux-gnu/libstdc++.so.6
    342713:	
    342713:	
    342713:	calling init: /usr/lib/x86_64-linux-gnu/libigdgmm.so.11
    342713:	
    342713:	
    342713:	calling init: /usr/lib/x86_64-linux-gnu/intel-opencl/libigdrcl.so
    342713:	
    342713:	find library=libigfxdbgxchg64.so [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/libigfxdbgxchg64.so
    342713:	
    342713:	find library=libigfxdbginfo.so [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/libigfxdbginfo.so
    342713:	
    342713:	find library=libelfdwarf.so [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/libelfdwarf.so
    342713:	
    342713:	
    342713:	calling init: /usr/lib/x86_64-linux-gnu/libelfdwarf.so
    342713:	
    342713:	
    342713:	calling init: /usr/lib/x86_64-linux-gnu/libigfxdbginfo.so
    342713:	
    342713:	
    342713:	calling init: /usr/lib/x86_64-linux-gnu/libigfxdbgxchg64.so
    342713:	
    342713:	find library=libigdml.so.1 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	 search path=/lib/x86_64-linux-gnu/tls/haswell/x86_64:/lib/x86_64-linux-gnu/tls/haswell:/lib/x86_64-linux-gnu/tls/x86_64:/lib/x86_64-linux-gnu/tls:/lib/x86_64-linux-gnu/haswell/x86_64:/lib/x86_64-linux-gnu/haswell:/lib/x86_64-linux-gnu/x86_64:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu/tls/haswell/x86_64:/usr/lib/x86_64-linux-gnu/tls/haswell:/usr/lib/x86_64-linux-gnu/tls/x86_64:/usr/lib/x86_64-linux-gnu/tls:/usr/lib/x86_64-linux-gnu/haswell/x86_64:/usr/lib/x86_64-linux-gnu/haswell:/usr/lib/x86_64-linux-gnu/x86_64:/usr/lib/x86_64-linux-gnu:/lib/tls/haswell/x86_64:/lib/tls/haswell:/lib/tls/x86_64:/lib/tls:/lib/haswell/x86_64:/lib/haswell:/lib/x86_64:/lib:/usr/lib/tls/haswell/x86_64:/usr/lib/tls/haswell:/usr/lib/tls/x86_64:/usr/lib/tls:/usr/lib/haswell/x86_64:/usr/lib/haswell:/usr/lib/x86_64:/usr/lib		(system search path)
    342713:	  trying file=/lib/x86_64-linux-gnu/tls/haswell/x86_64/libigdml.so.1
    342713:	  trying file=/lib/x86_64-linux-gnu/tls/haswell/libigdml.so.1
    342713:	  trying file=/lib/x86_64-linux-gnu/tls/x86_64/libigdml.so.1
    342713:	  trying file=/lib/x86_64-linux-gnu/tls/libigdml.so.1
    342713:	  trying file=/lib/x86_64-linux-gnu/haswell/x86_64/libigdml.so.1
    342713:	  trying file=/lib/x86_64-linux-gnu/haswell/libigdml.so.1
    342713:	  trying file=/lib/x86_64-linux-gnu/x86_64/libigdml.so.1
    342713:	  trying file=/lib/x86_64-linux-gnu/libigdml.so.1
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/tls/haswell/x86_64/libigdml.so.1
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/tls/haswell/libigdml.so.1
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/tls/x86_64/libigdml.so.1
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/tls/libigdml.so.1
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/haswell/x86_64/libigdml.so.1
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/haswell/libigdml.so.1
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/x86_64/libigdml.so.1
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/libigdml.so.1
    342713:	  trying file=/lib/tls/haswell/x86_64/libigdml.so.1
    342713:	  trying file=/lib/tls/haswell/libigdml.so.1
    342713:	  trying file=/lib/tls/x86_64/libigdml.so.1
    342713:	  trying file=/lib/tls/libigdml.so.1
    342713:	  trying file=/lib/haswell/x86_64/libigdml.so.1
    342713:	  trying file=/lib/haswell/libigdml.so.1
    342713:	  trying file=/lib/x86_64/libigdml.so.1
    342713:	  trying file=/lib/libigdml.so.1
    342713:	  trying file=/usr/lib/tls/haswell/x86_64/libigdml.so.1
    342713:	  trying file=/usr/lib/tls/haswell/libigdml.so.1
    342713:	  trying file=/usr/lib/tls/x86_64/libigdml.so.1
    342713:	  trying file=/usr/lib/tls/libigdml.so.1
    342713:	  trying file=/usr/lib/haswell/x86_64/libigdml.so.1
    342713:	  trying file=/usr/lib/haswell/libigdml.so.1
    342713:	  trying file=/usr/lib/x86_64/libigdml.so.1
    342713:	  trying file=/usr/lib/libigdml.so.1
    342713:	
    342713:	find library=libva.so.2 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/libva.so.2
    342713:	
    342713:	
    342713:	calling init: /usr/lib/x86_64-linux-gnu/libva.so.2
    342713:	
    342713:	
    342713:	calling fini: /usr/lib/x86_64-linux-gnu/libva.so.2 [0]
    342713:	
    342713:	find library=libigdfcl.so.1 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/libigdfcl.so.1
    342713:	
    342713:	find library=libLLVM-11.so.1 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/libLLVM-11.so.1
    342713:	
    342713:	find library=libopencl-clang.so.11 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/usr/lib/libopencl-clang.so.11
    342713:	
    342713:	find library=libffi.so.7 [0]; searching
    342713:	 search path=/usr/lib/x86_64-linux-gnu/../lib/tls/haswell/x86_64:/usr/lib/x86_64-linux-gnu/../lib/tls/haswell:/usr/lib/x86_64-linux-gnu/../lib/tls/x86_64:/usr/lib/x86_64-linux-gnu/../lib/tls:/usr/lib/x86_64-linux-gnu/../lib/haswell/x86_64:/usr/lib/x86_64-linux-gnu/../lib/haswell:/usr/lib/x86_64-linux-gnu/../lib/x86_64:/usr/lib/x86_64-linux-gnu/../lib		(RUNPATH from file /usr/lib/x86_64-linux-gnu/libLLVM-11.so.1)
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/../lib/tls/haswell/x86_64/libffi.so.7
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/../lib/tls/haswell/libffi.so.7
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/../lib/tls/x86_64/libffi.so.7
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/../lib/tls/libffi.so.7
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/../lib/haswell/x86_64/libffi.so.7
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/../lib/haswell/libffi.so.7
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/../lib/x86_64/libffi.so.7
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/../lib/libffi.so.7
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/libffi.so.7
    342713:	
    342713:	find library=libedit.so.2 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/libedit.so.2
    342713:	
    342713:	find library=libz.so.1 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/lib/x86_64-linux-gnu/libz.so.1
    342713:	
    342713:	find library=librt.so.1 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/lib/x86_64-linux-gnu/librt.so.1
    342713:	
    342713:	find library=libtinfo.so.6 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/lib/x86_64-linux-gnu/libtinfo.so.6
    342713:	
    342713:	find library=libz3.so.4 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/libz3.so.4
    342713:	
    342713:	find library=libLLVMSPIRVLib.so.11 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	 search path=/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/lib:/usr/lib		(system search path)
    342713:	  trying file=/lib/x86_64-linux-gnu/libLLVMSPIRVLib.so.11
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/libLLVMSPIRVLib.so.11
    342713:	  trying file=/lib/libLLVMSPIRVLib.so.11
    342713:	  trying file=/usr/lib/libLLVMSPIRVLib.so.11
    342713:	
    342713:	find library=libigc.so.1 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/libigc.so.1
    342713:	
    342713:	find library=libLLVM-12.so.1 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/libLLVM-12.so.1
    342713:	
    342713:	find library=libffi.so.7 [0]; searching
    342713:	 search path=		(RUNPATH from file /usr/lib/x86_64-linux-gnu/libLLVM-11.so.1)
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/libffi.so.7
    342713:	
    342713:	find library=libedit.so.2 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/libedit.so.2
    342713:	
    342713:	find library=librt.so.1 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/lib/x86_64-linux-gnu/librt.so.1
    342713:	
    342713:	find library=libz3.so.4 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/libz3.so.4
    342713:	
    342713:	find library=libz.so.1 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/lib/x86_64-linux-gnu/libz.so.1
    342713:	
    342713:	find library=libtinfo.so.6 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/lib/x86_64-linux-gnu/libtinfo.so.6
    342713:	
    342713:	find library=libxml2.so.2 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/libxml2.so.2
    342713:	
    342713:	find library=libbsd.so.0 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/libbsd.so.0
    342713:	
    342713:	find library=libicuuc.so.67 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/libicuuc.so.67
    342713:	
    342713:	find library=liblzma.so.5 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/lib/x86_64-linux-gnu/liblzma.so.5
    342713:	
    342713:	find library=libmd.so.0 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/libmd.so.0
    342713:	
    342713:	find library=libicudata.so.67 [0]; searching
    342713:	 search cache=/etc/ld.so.cache
    342713:	  trying file=/usr/lib/x86_64-linux-gnu/libicudata.so.67
    342713:	
    342713:	
    342713:	calling init: /usr/lib/x86_64-linux-gnu/libicudata.so.67
    342713:	
    342713:	
    342713:	calling init: /usr/lib/x86_64-linux-gnu/libmd.so.0
    342713:	
    342713:	
    342713:	calling init: /lib/x86_64-linux-gnu/liblzma.so.5
    342713:	
    342713:	
    342713:	calling init: /usr/lib/x86_64-linux-gnu/libicuuc.so.67
    342713:	
    342713:	
    342713:	calling init: /usr/lib/x86_64-linux-gnu/libbsd.so.0
    342713:	
    342713:	
    342713:	calling init: /lib/x86_64-linux-gnu/libz.so.1
    342713:	
    342713:	
    342713:	calling init: /usr/lib/x86_64-linux-gnu/libxml2.so.2
    342713:	
    342713:	
    342713:	calling init: /lib/x86_64-linux-gnu/libtinfo.so.6
    342713:	
    342713:	
    342713:	calling init: /usr/lib/x86_64-linux-gnu/libz3.so.4
    342713:	
    342713:	
    342713:	calling init: /lib/x86_64-linux-gnu/librt.so.1
    342713:	
    342713:	
    342713:	calling init: /usr/lib/x86_64-linux-gnu/libedit.so.2
    342713:	
    342713:	
    342713:	calling init: /usr/lib/x86_64-linux-gnu/libffi.so.7
    342713:	
    342713:	
    342713:	calling init: /usr/lib/x86_64-linux-gnu/libLLVM-12.so.1
    342713:	
    342713:	
    342713:	calling init: /usr/lib/x86_64-linux-gnu/libigc.so.1
    342713:	
Abort was called at 42 line in file:
./shared/source/built_ins/built_ins.cpp
=====

The unusual thingis that “something” in the call chain is trying to load
LLVM 11 libraries, while something else is trying to load LLVM 12
libraries.

Running `ldd /usr/lib/x86_64-linux-gnu/libigdfcl.so.1` against version
1.0.8279-1 of libigdfcl1 gives:
	linux-vdso.so.1 (0x00007ffdf332f000)
	libLLVM-11.so.1 => /usr/lib/x86_64-linux-gnu/libLLVM-11.so.1 (0x00007f325e7c3000)
	libopencl-clang.so.11 => /usr/lib/libopencl-clang.so.11 (0x00007f325e6d3000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f325e6cd000)
	libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f325e4c1000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f325e2fc000)
	libffi.so.7 => /usr/lib/x86_64-linux-gnu/libffi.so.7 (0x00007f325e2f0000)
	libedit.so.2 => /usr/lib/x86_64-linux-gnu/libedit.so.2 (0x00007f325e2b5000)
	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f325e298000)
	librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f325e28d000)
	libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007f325e25b000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f325e23a000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f325e0f5000)
	libz3.so.4 => /usr/lib/x86_64-linux-gnu/libz3.so.4 (0x00007f325caf2000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f325cad8000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f32639c7000)
	libLLVMSPIRVLib.so.11 => not found
	libclang-cpp.so.11 => /usr/lib/x86_64-linux-gnu/libclang-cpp.so.11 (0x00007f3259e41000)
	libbsd.so.0 => /usr/lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f3259e2a000)
	libmd.so.0 => /usr/lib/x86_64-linux-gnu/libmd.so.0 (0x00007f3259e1b000)

So I'm guessing the main issue at play here is that libigdfcl.so.1 is
_allegedly_ recompiled against LLVM 12 (per the package requires), but
for some reason the library is still looking for version 11 things.

reassign -1 libigdfcl1 1.0.8279-1

(As a side note, libigc1, libigdfcl1 and libigdgmm11 should probably
Break: versions of intel-opencl-icd not compiled for the same LLVM
version, to prevent e.g. installation of ICD version 20.x,
built with LLVM 11,
with libigc1 etc version 1.0.8279 or later, which are built against
LLVM 12.)

-- System Information:
Debian Release: bookworm/sid
  APT prefers unstable-debug
  APT policy: (500, 'unstable-debug'), (500, 'testing-debug'), (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.10.0-8-amd64 (SMP w/12 CPU threads)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages intel-opencl-icd depends on:
ii  libc6               2.32-4
ii  libgcc-s1           11.2.0-7
ii  libigc1             1.0.5353.1-2
ii  libigdfcl1          1.0.5353.1-2
ii  libigdgmm11         21.2.2+ds1-1
ii  libstdc++6          11.2.0-7
ii  ocl-icd-libopencl1  2.2.14-2

intel-opencl-icd recommends no packages.

intel-opencl-icd suggests no packages.

-- no debconf information


More information about the Pkg-opencl-devel mailing list