[Pkg-opencl-devel] Bug#768185: mesa-opencl-icd, beignet: installing together breaks all ICDs

Rebecca N. Palmer rebecca_palmer at zoho.com
Thu Nov 13 18:09:04 UTC 2014


Control: retitle -1 mesa-opencl-icd,beignet: installing together breaks all ICDs
Control: reassign -1 mesa-opencl-icd,beignet
Control: found -1 mesa/10.3.2-1
Control: found -1 beignet/0.9.3~dfsg-1

It appears I forgot to test mesa+pocl without beignet installed: pocl
then works, i.e. the problem only occurs if both mesa-opencl-icd and
beignet 0.9.3 are installed, but then breaks both beignet and pocl (can
someone with the hardware test whether it breaks mesa-opencl-icd too?)

Installing libllvm3.5-dbg, starting an OpenCL program under gdb (e.g.
gdb --args python3 two_icd_test.py ) and pasting this at the gdb prompt:

set breakpoint pending on
dprintf lib/Support/CommandLine.cpp:110,"%p %p %s\n",RegisteredOptionList,this,this->ArgStr
break lib/Support/CommandLine.cpp:110 if !strncmp(this->ArgStr,"asan-instrument-reads",20)
commands
bt
c
end
set pagination 0
run

shows many LLVM options being added to the same RegisteredOptionList
object twice, once by libOpenCL.so and once by beignet, hence the error.
(Nothing special about asan-instrument-reads, just a way to get one
backtrace per set instead of per option.)

Given that pocl does add these options when only it is installed, I
don't know yet why beignet+pocl or mesa+pocl adds them once (so works)
but mesa+beignet or mesa+beignet+pocl adds them twice (so fails).

As beignet 0.9.3 isn't going to be in jessie, and needs an upload for
#768090 anyway, it should probably carry the Breaks: until we can find
a real fix.




More information about the Pkg-opencl-devel mailing list