[Mesa-dev] [PATCH v3 25/25] configure.ac: Add required LLVM versions to the top

Michel Dänzer michel at daenzer.net
Fri Oct 14 00:45:49 UTC 2016


On 13/10/16 07:14 PM, Emil Velikov wrote:
> On 13 October 2016 at 04:07, Michel Dänzer <michel at 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.

That should be fine, since 3.9.y is backwards compatible with 3.9.x.

Debian doesn't automatically recompile Mesa in such cases either, and I
haven't seen any problems there because of that.

So, what exactly was the problem?


>>>> 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 ;-)

The question is if it makes sense for the default to be different from
what the majority of users end up using. It doesn't to me.


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer



More information about the mesa-dev mailing list