[Mesa-dev] Please test the automake-gallium4 branch

Emil Velikov emil.l.velikov at gmail.com
Mon Dec 3 03:06:49 PST 2012


On 03/12/12 01:42, Marek Olšák wrote:
> On Mon, Dec 3, 2012 at 2:30 AM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
>> On 03/12/12 00:15, Marek Olšák wrote:
>>> On Sun, Dec 2, 2012 at 9:48 PM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
>>>> On 23/11/12 21:23, Andreas Boll wrote:
>>>>> Hi mesa-list,
>>>>>
>>>>> I'm happy to announce that I've finished Matt's automake-gallium branch [0].
>>>>> Some of the independent patches are already in the master branch.
>>>>> I've fixed the missing symbols in vdpau and xvmc
>>>>> and installed lots of compatibility links to provide the same
>>>>> behaviour as the old build system. (lib/*.so and lib/gallium/*.so)
>>>>>
>>>>> Please help Matt and me to test the automake-gallium4 branch [1] !
>>>>>
>>>>> Here you have a list of things you could test:
>>>>>
>>>>> Drivers:
>>>>> - i915g
>>>>> - llvmpipe
>>>>> - nv30
>>>>> - nv50
>>>>> - nvc0
>>>>> - r300g
>>>>> - r600g
>>>>> - radeonsi
>>>>> - softpipe
>>>>> - svga
>>>>>
>>>>> State tracker:
>>>>> - Clover (OpenCL)
>>>>> - Mesa (OpenGL)
>>>>> - VDPAU
>>>>> - Vega (OpenVG)
>>>>> - XA
>>>>> - Xorg
>>>>> - XvMC
>>>>>
>>>>> The other build systems:
>>>>> - Android
>>>>> - Scons
>>>>>
>>>>> Some other things:
>>>>> - egl, gles1,2, gbm, with and without LLVM, r600-llvm-compiler
>>>>>
>>>>>
>>>>> If there are no objections I'll merge this branch next week.
>>>>>
>>>>> Thanks to Matt and Tom for the hard work.
>>>>
>>>> Hi Andreas
>>>>
>>>> I've been testing the branch for a few days now and apart from the
>>>> increased number of symbols [1] I have not noticed any issues
>>>>
>>>> * Hardware - nvidia geforce GT 120M (nv96)
>>>> * Drivers - nv50
>>>> * State trackers - Mesa/Gallium (OpenGL)
>>>>
>>>> The following have also been built but not tested (yet)
>>>> * egl, gles1,2, gbm, vdpau
>>>>
>>>> [1] The number and type of symbols varies greatly. The following are
>>>> mostly affected
>>>
>>> How exactly does it vary? AFAIK the current build system uses a gcc or
>>> linker flag to hide most of the symbols.
>>
>> A nice example is swrast_dri.so (oops forgot to mention it)
>> 215 vs 1962 is the count of dynamic symbols before and after automake
>>
>> A brief list of the new symbols
>>
>>        D  *UND* 0000000000000000              _glapi_set_dispatch
>>        D  *UND* 0000000000000000              _glapi_tls_Dispatch
>> + g    DF .text 0000000000000002  Base        draw_create
>> + g    DO .data.rel.ro  00000000000000d8  Base
>> util_format_l32_uint_description
>> + g    DF .text 0000000000000105  Base
>> util_format_dxt1_rgb_unpack_rgba_8unorm
>> + g    DO .data.rel.ro  00000000000000d8  Base
>> util_format_r8g8b8a8_uscaled_description
>> + g    DF .text 00000000000000a5  Base        trace_dump_ret_end
>> + g    DF .text 000000000000006c  Base        ppc_comment
>> + g    DF .text 00000000000000ff  Base        draw_pipeline_run_linear
>> + g    DF .text 000000000000119a  Base        u_index_init
>> + g    DF .text 0000000000000081  Base        x87_fsubp
>>
>> I can provide more info but not too sure where to start
>> * compiler
>> * linker
>> * build flags...
> 
> Try -fvisibility=hidden. The flag is very important for linux
> distributions, because it makes the libs smaller.
> 
> configure.ac sets it. I think the automake build system ignores it,
> which is a bug.
> 

Major improvement, although some interesting symbols appeared

swrast_dri.so: cff4c94 vs 02d36a2 (with -fvisibility=hidden)

...
 0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 exp
+0000000000000000      DF *UND*	0000000000000000  GLIBC_2.3.2
pthread_cond_destroy
+0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 sincosf
 0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 atan2
...
 0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 puts
+0000000000000000      DF *UND*	0000000000000000  GLIBC_2.3.2
pthread_cond_signal
 0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 log2f
...
 0000000000000000      D  *UND*	0000000000000000
_glapi_get_proc_address
+0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 sched_yield
 0000000000000000      DF *UND*	0000000000000000  GLIBC_2.3.4 __memcpy_chk
...
 0000000000000000      DF *UND*	0000000000000000  GLIBC_2.3.4 __strncat_chk
+0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 log
 0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 logf
 0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 strtod
 0000000000000000      DO *UND*	0000000000000000  GLIBC_2.2.5 stdout
+0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 _IO_putc
 0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 fflush
 0000000000000000      D  *UND*	0000000000000000
_glapi_tls_Dispatch
-000000000020fb40 g    DF .text	0000000000002794  Base        glcpp_lex
-000000000020f0e0 g    DF .text	0000000000000008  Base        glcpp_set_lval
-000000000020f110 g    DF .text	0000000000000005  Base        glcpp_alloc

AFAIK the lack of glcpp_* should not cause any issues. I'm a bit curious
what caused sched_yield and pthread_cond_* to pop in. Either case I will
give a bit of love to see if any issues do arise

Andreas
I have noticed that some of the latest egl-static patches caused
egl_gallium.so to disappear(?). Not too sure is it the Arch way of
packaging or genuine issue. I'll investigate as time permits


Thanks
Emil
> Marek
> 



More information about the mesa-dev mailing list