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

Andreas Boll andreas.boll.dev at gmail.com
Mon Dec 3 12:57:51 PST 2012


2012/12/3 Emil Velikov <emil.l.velikov at gmail.com>:
> 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:

snip

>>>>> 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.
>>

This issue is known to me.
I've got a WIP patch for that, but I think this issue isn't a blocker.
As long as it doesn't break the build or some functionality,
I think this can wait until after the branch has been merged.

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

OK I've reverted that patch for now.
targets/egl-static  definitely needs more investigation.

Thanks,

Andreas.


More information about the mesa-dev mailing list