https://bugs.freedesktop.org/show_bug.cgi?id=75400
--- Comment #5 from Francisco Jerez currojerez@riseup.net --- (In reply to comment #4)
I am also very surpised of what commit seems to start this. I have done the bisect making Arch packages, installing and then testing them. So, unless I have missed something, which is also possible, that's it.
I have recompiled at commit cc3aeac with debug information, but for some strange reason, gdb don't want to step into OpenCL functions.
Here's what I have guessed:
- Actually, the segfault comes from a fprintf with a "%s" and a null
pointer. It can be solved by just adding a default case to 'clUtilErrorString'.
- The real problem happens with 'clGetPlatformIDs', which returns an error
value of '-1001'.
I have triggered the return of 'CL_INVALID_VALUE', and tried various combinations of parameters to see if it changed anything. And seems to be one thing or the other.
I have checked the code at mesa/src/gallium/state_trackers/clover/api/platform.cpp (where clGetPlatformIDs is) and have no clue how it can be possible.
Sorry if this isn't enough information, but I completely clueless of what can be happening.
I will check again my packages to see if I have compiled some version and have called it other.
If I can help with anything else, just ask.
Most likely you're getting that segfault somewhere in the ICD loader because it's unable to load Mesa's ICD library. I guess that this hunk:
+if NEED_WINSYS_XLIB +AM_CPPFLAGS += -DHAVE_WINSYS_XLIB +endif
pulls in the XLIB pipe-loader back-end that was previously ifdef-ed out in Clover builds, leading to undefined symbols in the resulting library.