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

Reply via email to