First of all, the whole purpose of ICDs is to give multiple drivers the ability to coexist on the same system and the applications a method of enumerating them and choosing one. So making the packages providing ICDs conflict with each other would defeat their purpose. Secondly, making llvm static would have big negative impact on the distribution. It is against our guidelines (https://en.opensuse.org/openSUSE:Packaging_guidelines#Static_Libraries), which exist for good reasons. Building it statically would mean that every package that uses it would have to be rebuild and retested every time llvm changes. It would also increase the resources used for building llvm and all packages that use it. Building llvm already takes lot of resources and puts stress on our build service. I have spent last two months optimizing the llvm build to get it to at least acceptable levels. Note that we have never distributed llvm static libraries. The recent changes in the package only changed how we get rid of them during build. So I consider switching llvm to static as the last resort if there is no other solution. I have reproduced this bug and analyzed it. The issue is not that libLLVM.so is loaded twice, but that Mesa loads libLLVM.so.5 while pocl loads libLLVM.so.4. That is the thing that recently changed - we have introduced llvm 5 and made it the default. Mesa was rebuilt against llvm 5, but pocl was not. It is because we have pocl version 0.14 that supports at most llvm 4. I have updated pocl to version 1.0 (which supports llvm 5) and rebuilt it with llvm 5. It seems to solve the issue. I will double check it and if it is correct, submit the updated pocl.