[Mesa-dev] [PATCH 7/7] configure.ac: static link LLVM by default

Emil Velikov emil.l.velikov at gmail.com
Thu Oct 5 15:40:37 UTC 2017


On 5 October 2017 at 16:16, Tom Stellard <tstellar at redhat.com> wrote:
> On 10/05/2017 06:33 AM, Michel Dänzer wrote:
>> On 05/10/17 12:19 PM, Emil Velikov wrote:
>>> From: Emil Velikov <emil.velikov at collabora.com>
>>>
>>> A while back Michel reported that LLVM has symbol versioning to avoid
>>> symbol collisions. Based on observations LLVM 5.0 is the first upstream
>>> version to actually has it.
>>
>> Not exactly. Adam Jackson originally added symbol versioning in LLVM 3.6
>> (in SVN r214418), but it was only effective when LLVM was built with
>> autotools. As of 5.0, it's effective with cmake as well.
>>
>>
>>> Since symbol collisions do come up again and again (fortunately not so
>>> often) let's flip the switch back to static.
>>
>> It seems a bit weird to make this change now, that LLVM is solving the
>> issue for good. But I don't feel strongly about it.
>>
>>
>
> I agree with this, symbol versioning should solve the issues with  symbol
> collisions, so why change this now?
>
LLVM with symbol versioning as not so widely used as I/we hope it was.
See the list in my other reply.

> Also, do we have a linker script or some other mechanism to prevent
> mesa's libraries from exporting LLVM symbols when statically linked?
>
Good question, yes we do. The first one (for dri) by Maarten, the rest
by yours truly... back in 2014.

Although LLVM should really annotate it's symbols - either via
__attribute__ ((visibility ("hidden")) or -fvisibility=hidden.
But that's a topic for another day and/or place.

Thanks
Emil


More information about the mesa-dev mailing list