Bug#1127761: llvm-related segfaults with OpenCL ICDs are built with different versions
Giuseppe Bilotta
giuseppe.bilotta at gmail.com
Thu Feb 12 17:09:55 GMT 2026
Package: llvm
Version: 1:21.1.6-70
Severity: normal
Tags: upstream
I have come across this issue when trying to use a self-built current
development version of pocl on by Debian sid machine with rusticl
installed, and is caused by multiple concurrent factors.
For work, I need to build the pocl CUDA backend, which refuses to build
against llvm 21 because of this bug
https://github.com/llvm/llvm-project/issues/154772
that has apparently been fixed in this LLVM commit:
https://github.com/llvm/llvm-project/pull/170170
The issue manifests differently depending on which version of rusticl I
have installed and how pocl is built. Some of the combinations I've
tried are:
mesa-opencl-icd 25.3.3-1, custom pocl built against llvm 18:
running some OpenCL programs on the rusticl platform segfaults in the
constructor for clang::DiagnosticOptions, called by
clc_compile_to_llvm_module from clc.
mesa-opencl-icd 25.3.3-1, custom pocl built against llvm 19,
mesa-opencl-icd 26.0.0~rc3, custom pocl built against llvm 18:
segfault is triggered in the rusticl platform devices enumeration during
a full `clinfo` when the rusticl platform tries to build the simple
kernels used to check preferred workgroup size multiples.
mesa-opencl-icd 25.3.3-1, custom pocl built against llvm 18 with
-DSTATIC_LLVM=ON: crashes `clinfo -l` during the pocl device
numeration, with the well-known
: CommandLine Error: Option 'internalize-public-api-file' registered more than once! LLVM ERROR: inconsistency in registered CommandLine options
error (wow, I hadn't seen this in a LONG time).
While I can probably provisionally solve my specific issue by
downgrading my mesa-opencl-icd installation to the stabl version, which
is built against LLVM 19, or possibly by a backport of the
aforementioned 170170 PR to the LLVM 21 in Debian, the underlying issue
remains that it is still impossible to have multiple OpenCL ICD versions
using different LLVM / libclang versions in the same system.
-- System Information:
Debian Release: forky/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 6.18.9+deb14-amd64 (SMP w/16 CPU threads; PREEMPT)
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 /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages llvm depends on:
ii llvm-21 1:21.1.8-3
ii llvm-runtime 1:21.1.6-70
llvm recommends no packages.
llvm suggests no packages.
-- no debconf information
More information about the Pkg-llvm-team
mailing list