[Mesa-dev] [PATCH 1/2] build libgallium shared by default.

Maarten Lankhorst maarten.lankhorst at canonical.com
Tue Mar 19 00:21:33 PDT 2013


Op 18-03-13 16:28, Andreas Boll schreef:
> 2013/3/18 Maarten Lankhorst <maarten.lankhorst at canonical.com>:
>> This is one of the 2 patches used in ubuntu for decreasing size of mesa build.
>>
>> The other one is more hacky, and links libmesagallium into libgallium,
>> and then links libgallium against libdricore too for minimal duplication.
>>
>> This might mess up with static llvm, iirc static llvm is built wrong and
>> linking libgallium against it will cause it to export all llvm symbols too.
>> I believe that this is a bug in llvm though, not in mesa. The static libraries
>> should not export all llvm symbols.
>>
>> I should probably change the default to not building shared gallium for the
>> same reason. :-)
>>
>> Meant mostly for discussion purposes, although if there is no objection I'll
>> change the default to disabling shared gallium, and just let every distro enable
>> shared llvm and libgallium for themselves.
>>
>>> 8---
>> Signed-off-by: Maarten Lankhorst <maarten.lankhorst at canonical.com>
>>
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -733,6 +733,19 @@
>>  fi
>>  AM_CONDITIONAL(HAVE_SHARED_GLAPI, test "x$enable_shared_glapi" = xyes)
>>
>> +AC_ARG_ENABLE([shared-gallium],
>> +    [AS_HELP_STRING([--enable-shared-gallium],
>> +        [Enable shared gallium core @<:@default=yes@:>@])],
>> +    [enable_shared_gallium="$enableval"],
>> +    [enable_shared_gallium=yes])
>> +
> The following code could be simplified...
>
>> +SHARED_GALLIUM="0"
>> +if test "x$enable_shared_gallium" = xyes; then
>> +    SHARED_GALLIUM="1"
>> +fi
>> +AC_SUBST([SHARED_GALLIUM])
>> +AM_CONDITIONAL(HAVE_SHARED_GALLIUM, test $SHARED_GALLIUM = 1)
>> +
> ... to:
>
> AM_CONDITIONAL(HAVE_SHARED_GALLIUM, test "x$enable_shared_gallium" = xyes)
>
Woops you're right, this was a leftover from when the patch was a lot more invasive,
and had to touch configs/autoconf.in too.
The AM_CONDITIONAL was added later during the transition to 9.0 :-)

Any thoughts on making shared gallium default or not? I'm thinking not because
of the llvm symbol bug I mentioned above, unless we change the default
of llvm shared libs to enabled too.

~Maarten


More information about the mesa-dev mailing list