Bug#1117930: mesa-opencl-icd: Rusticl ICD dispatch table not initialized - NULL clGetPlatformInfo causes segfault
Package: mesa-opencl-icd
Version: 25.2.4-1
Severity: grave
Justification: renders package unusable
X-Debbugs-Cc: michel@lebihan.pl
The Rusticl OpenCL ICD causes segfaults in all OpenCL applications when
attempting to query platform information. The crash occurs at address
0x0000000000000000 when calling clGetPlatformInfo on the Rusticl platform.
Reproduction Case 1 - clinfo:
$ clinfo
Found 2 platforms
Platform 0: Portable Computing Language (POCL)
Segmentation fault
GDB session:
(gdb) run
Thread 1 "clinfo" received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
(gdb) bt
#0 0x0000000000000000 in ?? ()
#1 0x000055555555e90b in platform_info_str at src/clinfo.c:948
#2 0x0000555555564fa0 in gatherPlatformInfo at src/clinfo.c:1216
#3 0x000055555555d79d in main at src/clinfo.c:4835
(gdb) frame 1
(gdb) print loc->plat
$1 = (cl_platform_id) 0x7ffff79e2950 <rusticl::core::platform::PLATFORM>
Reproduction Case 2 - Minimal test program:
$ cat test_rusticl.c
#include <CL/cl.h>
#include <stdio.h>
int main() {
cl_platform_id platforms[10];
cl_uint num_platforms;
clGetPlatformIDs(10, platforms, &num_platforms);
printf("Found %d platforms\n", num_platforms);
for (int i = 0; i < num_platforms; i++) {
char name[256];
cl_int err = clGetPlatformInfo(platforms[i], CL_PLATFORM_NAME,
sizeof(name), name, NULL);
printf("Platform %d: err=%d, name=%s\n", i, err,
err == CL_SUCCESS ? name : "FAILED");
}
return 0;
}
$ gcc test_rusticl.c -lOpenCL -o test_rusticl
$ ./test_rusticl
Found 2 platforms
Platform 0: err=0, name=Portable Computing Language
Segmentation fault
GDB session:
(gdb) run
Thread 1 "test_rusticl" received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
(gdb) bt
#0 0x0000000000000000 in ?? ()
#1 0x00005555555551c7 in main ()
Additional debugging information:
Platform object memory at 0x7ffff79e2950:
(gdb) x/20xg 0x7ffff79e2950
0x7ffff79e2950: 0x00007ffff79bbe40 0x00005555556a2840
0x7ffff79e2960: 0x0000000000000000 0x0000000000000008
0x7ffff79e2970: 0x0000000000000000 0x000000000000000a
0x7ffff79e2980: 0x0000555555693090 0x000000000000000a
0x7ffff79e2990: 0x0000000000000004 0x00005555556a0d60
0x7ffff79e29a0: 0x0000000000000001 0x8000000000000000
Library symbol check:
$ nm -D /usr/lib/x86_64-linux-gnu/libRusticlOpenCL.so.1.0.0 | grep clGetPlatformInfo
00000000002077c0 T clGetPlatformInfo
$ readelf -s /usr/lib/x86_64-linux-gnu/libRusticlOpenCL.so.1.0.0 | grep clGetPlatformInfo
961: 00000000002077c0 8 FUNC GLOBAL DEFAULT 12 clGetPlatformInfo
-- System Information:
Debian Release: forky/sid
APT prefers testing
APT policy: (700, 'testing'), (650, 'unstable'), (600, 'experimental'), (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 6.16.9+deb14-amd64 (SMP w/8 CPU threads; PREEMPT)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages mesa-opencl-icd depends on:
ii libc6 2.41-12
ii libclang-cpp19 1:19.1.7-7
ii libclc-19 1:19.1.7-7
ii libdrm-amdgpu1 2.4.125-2
ii libdrm2 2.4.125-2
ii libelf1t64 0.193-3
ii libexpat1 2.7.3-1
ii libgcc-s1 15.2.0-4
ii libllvm19 1:19.1.7-7
ii libllvmspirvlib19.1 19.1.11-1
ii libstdc++6 15.2.0-4
ii libzstd1 1.5.7+dfsg-2
ii ocl-icd-libopencl1 [libopencl1] 2.3.3-1
ii zlib1g 1:1.3.dfsg+really1.3.1-1+b1
mesa-opencl-icd recommends no packages.
mesa-opencl-icd suggests no packages.
Versions of packages xserver-xorg depends on:
ii x11-xkb-utils 7.7+9
ii xkb-data 2.42-1
ii xserver-xorg-core 2:21.1.18-2
ii xserver-xorg-input-all 1:7.7+25
ii xserver-xorg-input-evdev [xorg-driver-input] 1:2.11.0-1
ii xserver-xorg-input-libinput [xorg-driver-input] 1.5.0-1
ii xserver-xorg-input-mouse [xorg-driver-input] 1:1.9.3-1+b1
ii xserver-xorg-input-synaptics [xorg-driver-input] 1.9.2-1+b2
ii xserver-xorg-input-wacom [xorg-driver-input] 1.2.3-1
ii xserver-xorg-video-all 1:7.7+25
ii xserver-xorg-video-amdgpu [xorg-driver-video] 23.0.0-1
ii xserver-xorg-video-ati [xorg-driver-video] 1:22.0.0-1
ii xserver-xorg-video-cirrus [xorg-driver-video] 1:1.6.0-1
ii xserver-xorg-video-fbdev [xorg-driver-video] 1:0.5.0-2
ii xserver-xorg-video-mga [xorg-driver-video] 1:2.0.0-1+b1
ii xserver-xorg-video-nouveau [xorg-driver-video] 1:1.0.18-1
ii xserver-xorg-video-openchrome [xorg-driver-video] 1:0.6.0-5
ii xserver-xorg-video-qxl [xorg-driver-video] 0.1.6-1.1
ii xserver-xorg-video-radeon [xorg-driver-video] 1:22.0.0-1
ii xserver-xorg-video-vesa [xorg-driver-video] 1:2.6.0-2
ii xserver-xorg-video-vmware [xorg-driver-video] 1:13.4.0-1
Versions of packages xserver-xorg recommends:
ii libgl1-mesa-dri 25.2.4-1
ii xserver-xorg-legacy 2:21.1.18-2
Versions of packages xserver-xorg-core depends on:
ii keyboard-configuration 1.242
ii libaudit1 1:4.1.2-1
ii libc6 2.41-12
ii libdbus-1-3 1.16.2-2
ii libdrm2 2.4.125-2
ii libegl1 1.7.0-1+b2
ii libepoxy0 1.5.10-2
ii libgbm1 25.2.4-1
ii libgl1 1.7.0-1+b2
ii libnettle8t64 3.10.2-1
ii libpciaccess0 0.17-3+b3
ii libpixman-1-0 0.46.4-1
ii libselinux1 3.8.1-1
ii libsystemd0 258-1
ii libudev1 258-1
ii libunwind8 1.8.1-0.1
ii libxau6 1:1.0.11-1
ii libxcvt0 0.1.3-1
ii libxdmcp6 1:1.1.5-1
ii libxfont2 1:2.0.6-1+b3
ii libxshmfence1 1.3.3-1
ii udev 258-1
ii xserver-common 2:21.1.18-2
Versions of packages xserver-xorg-core recommends:
ii libgl1-mesa-dri 25.2.4-1
ii libpam-systemd [logind] 258-1
ii xcvt 0.1.3-1
Versions of packages xserver-xorg-core suggests:
ii xfonts-100dpi 1:1.0.5
ii xfonts-75dpi 1:1.0.5
ii xfonts-scalable 1:1.0.3-1.3
-- no debconf information
Reply to: