Overview
Request 533029 accepted
- Add clang-devel-static package.
* Requires clang4-devel-static that was added to llvm4 package.
- Created by michalsrb
- In state accepted
- Package maintainer: aaronpuchert
- Supersedes 532965
Apparent question would be why are devel-static subpackages needed - is there need to ship them?
See https://en.opensuse.org/openSUSE:Shared_library_packaging_policy#Best_Practices for details
Actually the llvm-devel-static would not be necessary, but the clang-devel-static is. I have included llvm-devel-static for completeness, but I am fine with removing it again.
We used to build llvm and clang (same source package) in such way that every llvm and clang component was built into a separate dynamic library. That sounds good, but it is actually build mode only meant for llvm developers. It caused various bugs. (See https://bugzilla.opensuse.org/show_bug.cgi?id=1049703 and https://github.com/klee/klee/pull/686#issuecomment-316741224). So this build mode is known to be buggy and not supported by upstream.
I changed the build mode to the recommended way, in which all llvm components end up in a single shared library (so we link against that and don't really need the llvm-devel-static), but the clang components are only built as static libraries and nothing else (so we need clang-devel-static).
The clang libraries are required by Mesa for OpenCL support. I am not sure if any other packages use it too. For example Ubuntu also links Mesa with clang statically.