On 13 October 2016 at 04:07, Michel Dänzer <mic...@daenzer.net> wrote: > On 13/10/16 03:37 AM, Tobias Droste wrote: >> Am Mittwoch, 12. Oktober 2016, 11:53:50 CEST schrieb Emil Velikov: >>>> >>>> +LLVM_VERSION_REQUIRED_OPENCL=3.6.0 >>>> +LLVM_VERSION_REQUIRED_R600=3.6.0 >>>> +LLVM_VERSION_REQUIRED_RADEONSI=3.6.0 >>> >>> There's a small related gotcha: as-is at build time we get the >>> different codepaths thus, as people build against shared LLVM (hello >>> Archlinux, I'm looking at you) and update their LLVM without >>> rebuilding mesa (Arch I'm looking at you again) things go funny. > > What exactly happened there? LLVM upstream generates shared libraries > named libLLVM-<major>.<minor>.so*, so it shouldn't be possible for a > simple LLVM package update to break Mesa, unless Arch did something > really stupid. > The issue is not specific to Arch, but anyone who links against shared LLVM.
Here is another take on it: At least swr and r600/radeonsi depend at _build_ time on the _patch_ version of LLVM. The latter of which is not part of the DSO name. Thus at runtime as you change your LLVM (3.9.x>3.9.y) you'll execute the "3.9.x" codepath even though you are be using "3.9.y" LLVM. If anything I'm calling it a LLVM bug, since shared/static library users should not need to know patch version, let alone have different codepaths based on it. Runtime ones might be ok, compile time definitely not. On our end, we could a) bump the requirement such that there's no compile time patch version check, b) suggest static linking or c) pretend the {mis,ab,}use isn't there ;-) > >>> Tl;Dr; We really want to enable static linking by default and prod >>> distros to use it. >> >> I'm all in favor of statically linking LLVM (that's the way I'm doing this on >> my pc). >> I think the only reason this is not done is because people (also here on the >> list) don't want any static linkg of external libraries because of size or >> whatever. >> So changing the default to static is easy, but I doubt it will make everyone >> happy ;-) > > Indeed, it'd probably make many distro packagers unhappy, because > they'll just have to re-enable shared linking, because packaging > policies generally strongly discourage if not outright forbid static > linking. > The toggle is there and is not going away, afaict. If people are going to get upset that the default does not meet their policy... just toggle and get on with other things ;-) Thanks Emil _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev