Blender crashes at startup with LLVM error

Greetings. I’m experiencing a major issue with Blender 2.79 on openSUSE Tumbleweed, which affects both the version installed via system packages as well as the one downloaded from https://blender.org and unpacked locally. Blender refuses to run and crashes on startup after the main window appears. If ran from a command line, I get the following error printed to the console:

mircea@linux-qz0r:~> blender
Read prefs: /home/mircea/.config/blender/2.79/config/userpref.blend
mesa: CommandLine Error: Option 'enable-value-profiling' registered more than once!
LLVM ERROR: inconsistency in registered CommandLine options
mircea@linux-qz0r:~> 

I googled the last two lines, and from what I gathered it has to do with a bug involving multiple LLVM versions. I checked my system packages via YaST, and the only version I now have installed is LLVM 4.0.1. Unfortunately removing LLVM 3.8 and restarting X11 did not affect the problem.

I need to be able to run Blender again quickly. Does anyone know how to fix those problems please? Note that I cannot downgrade my OS system packages nor attempt risky experiments, as this is my Desktop computer and I can’t afford a broken machine. Thank you.

As recommended by someone on IRC, here’s the output of running blender with the ‘strace’ command. I also forgot to mention that the issue started happening after a system package update, either last night or this morning.

mircea@linux-qz0r:~> strace -e open blender
open("/proc/sys/vm/overcommit_memory", O_RDONLY|O_CLOEXEC) = 3
open("/sys/devices/system/node", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
open("/sys/devices/system/cpu", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
open("/sys/devices/system/cpu", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
open("/sys/devices/system/cpu/online", O_RDONLY|O_CLOEXEC) = 3
open("/usr/lib64/audaspace-1.3/plugins", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
open("/etc/mtab", O_RDONLY|O_CLOEXEC)   = 4
open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 4
open("/usr/lib/locale/en_US.UTF-8/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/en_US.utf8/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = 4
open("/usr/lib64/gconv/gconv-modules.cache", O_RDONLY) = 4
open("/usr/lib/locale/en_US.UTF-8/LC_MEASUREMENT", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/en_US.utf8/LC_MEASUREMENT", O_RDONLY|O_CLOEXEC) = 4
open("/usr/lib/locale/en_US.UTF-8/LC_TELEPHONE", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/en_US.utf8/LC_TELEPHONE", O_RDONLY|O_CLOEXEC) = 4
open("/usr/lib/locale/en_US.UTF-8/LC_ADDRESS", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/en_US.utf8/LC_ADDRESS", O_RDONLY|O_CLOEXEC) = 4
open("/usr/lib/locale/en_US.UTF-8/LC_NAME", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/en_US.utf8/LC_NAME", O_RDONLY|O_CLOEXEC) = 4
open("/usr/lib/locale/en_US.UTF-8/LC_PAPER", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/en_US.utf8/LC_PAPER", O_RDONLY|O_CLOEXEC) = 4
open("/usr/lib/locale/en_US.UTF-8/LC_MESSAGES", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/en_US.utf8/LC_MESSAGES", O_RDONLY|O_CLOEXEC) = 4
open("/usr/lib/locale/en_US.utf8/LC_MESSAGES/SYS_LC_MESSAGES", O_RDONLY|O_CLOEXEC) = 4
open("/usr/lib/locale/en_US.UTF-8/LC_MONETARY", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/en_US.utf8/LC_MONETARY", O_RDONLY|O_CLOEXEC) = 4
open("/usr/lib/locale/en_US.UTF-8/LC_COLLATE", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/en_US.utf8/LC_COLLATE", O_RDONLY|O_CLOEXEC) = 4
open("/usr/lib/locale/en_US.UTF-8/LC_TIME", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/en_US.utf8/LC_TIME", O_RDONLY|O_CLOEXEC) = 4
open("/usr/lib/locale/en_US.UTF-8/LC_NUMERIC", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/en_US.utf8/LC_NUMERIC", O_RDONLY|O_CLOEXEC) = 4
open("/usr/lib/locale/en_US.UTF-8/LC_CTYPE", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/en_US.utf8/LC_CTYPE", O_RDONLY|O_CLOEXEC) = 4
open("/etc/pulse/client.conf.d", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 7
open("/dev/shm/", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 6
open("/etc/pulse/client.conf.d", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 12
open("/dev/shm/", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 11
open("/dev/dri", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 15
open("/dev/dri", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 15
open("/dev/dri", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 15
open("/dev/dri", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 16
open("/dev/dri", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 16
open("/usr/lib64/python3.6", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/usr/lib64/python3.6/encodings", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/usr/lib64/python3.6/site-packages", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/usr/lib64/python3.6/lib-dynload", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 18
open("/usr/lib64/python3.6/collections", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 18
open("/usr/lib64/python3.6/importlib", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 18
open("/usr/lib64/python3.6/site-packages", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 18
open("/usr/lib/python3.6/site-packages", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/usr/lib/python3.6/site-packages", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 18
open("/usr/lib64/python3.6/site-packages/PIL", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/usr/lib64/python3.6/_import_failed", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/usr/share/blender/2.79/scripts/modules", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/usr/share/blender/2.79/scripts/modules/bpy", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/usr/share/blender/2.79/scripts/startup", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/usr/share/blender/2.79/scripts/startup", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/usr/share/blender/2.79/scripts/startup/bl_operators", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/usr/share/blender/2.79/scripts/modules/bpy_extras", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/usr/share/blender/2.79/scripts/startup/bl_ui", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/home/mircea/.config/blender/2.79/scripts/addons", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/usr/share/blender/2.79/scripts/addons", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/usr/share/blender/2.79/scripts/addons/cycles", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/etc/OpenCL/vendors", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/dev/dri", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 19
open("/dev/dri", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 19
open("/dev/dri", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 19
open("/dev/dri", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 19
open("/sys/devices/system/cpu/online", O_RDONLY|O_CLOEXEC) = 19
mesa: CommandLine Error: Option 'enable-value-profiling' registered more than once!
LLVM ERROR: inconsistency in registered CommandLine options
+++ exited with 1 +++
mircea@linux-qz0r:~> 

I have found the problem and its solution! Kudos to this thread for that.

The issue is in fact caused by having multiple OpenCL ICD’s installed at the same time, and will crash every OpenCL application on the system. In my case I had both “libOpenCL1” and “pocl” installed simultaneously, and after removing pocl Blender now runs flawlessly again. pocl was likely recommended by another system package as of last night’s openSUSE Tumbleweed snapshot, which is how it came to be on my system and conflict the existing ICD; If I run ‘zypper dup’ again it wants to reinstall that package, so for the time being I will have to blacklist it to avoid this problem.

This honestly looks like a serious issue, and I hope my report helps bring it to light for a potential solution. This isn’t a Blender problem as I initially thought, but either an openSUSE packaging concern or a bug in MESA. If anyone knows I’d like to hear your feedback.

I submitted a bug report recommending that zypper only lets you install one OpenCL ICD at a time, marking multiple ICD packages as conflicting. I don’t know if this is the correct and permanent solution, but it seems like a good idea for the time being.

https://bugzilla.opensuse.org/show_bug.cgi?id=1065464

Found same “LLVM ERROR: inconsistency in registered CommandLine options” error and other libOpenCL1 package was installed by FlightGear - Flight Simulator. FlightGear was for testing, uninstalled and Blender works.