[Mesa-dev] [PATCH 00/22] Exported symbols cleanup and tests

Emil Velikov emil.l.velikov at gmail.com
Tue Feb 11 14:09:37 PST 2014


On 08/02/14 16:03, Emil Velikov wrote:> Hello list,
>
> Continuing with another not so interesting area of mesa - cleaning up
> the exported symbols and adding make check tests.
>
> Note: Most of these patches are rather dull and may cause boredom or
> sleepiness :-)
>
> Before proceeding make sure that with-llvm-shared-libs is set, otherwise
> the modules will export every llvm symbol imaginable and make check will
> fail. The above option will default to enabled/with with mesa 10.1 and
> later once patch is commited.
>
> Brief/highlights:
>  - Cleans up symbols that has been incorrectly marked as PUBLIC.
>  - Adds VISIBILITY_CFLAGS on a handful of places within automake.
>  - Adds tests so that make check shouts loudly if we're exporting too
> many symbols.
>  - Mainly T symbols are checked, due to the reasons listed in the next
>  point.
>  - Drivers using stl (r600 and nouveau I'm looking at you), provide a
> handfull of exported weak symbols due to gcc design feature [1]. Those
> have been left as is.
>  - Finally VISIBILITY_CFLAGS has been compacted into DEFINES. The cases
> that break (if any) should be fixed approapriately.
>  - There is a few more places that could use similar treatment. To be
> continued ...
>
> As usual a branch cleanup-exported-symbols-v2 can be found over at
> https://github.com/evelikov/Mesa/
>
>
> Runtime tested on my rusty old nv96 (nouveau), using the dri and vdpau
> state-trackers.
> make check tested for every possible test, with swrast, nouveau and r600.
>
> Feel free to take a look and more importantly _please_ give them a test.
>
> Thanks
> Emil
>
> [1] http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36022
>
> Emil Velikov (22):
>       auxiliary/pipe-loader: automake: avoid exporting all symbols
>       targets/pipe-loader: automake: drop obsolete version-script
>       st/gbm: automake: do not export gbm_gallium_drm_device_create
>       gbm: automake: add VISIBILITY_CFLAGS
>       gbm: do not export _gbm_mesa_get_device
>       targets/gbm: automake: do not export internal symbols
>       gbm: automake: add symbol tests
>       targets/egl-static: automake: don't export local symbols
>       st/egl: automake: avoid exporting all symbols
>       wayland-egl: automake: add symbol test
>       egl: automake: add symbol test
>       targets/egl-static: automake: drop obsolete version-script
>       st/vdpau: do not export VdpPresentationQueueTargetCreateX11
>       st/vdpau: automake: export only PUBLIC symbols
>       targets/vdpau: automake: add exported symbol tests
>       targets/dri: automake: add test for exported symbols
>       targets/xvmc: add automake test to check for exported symbols
>       osmesa: drop obsolete AM_CXXFLAGS
>       omx: use VISIBILITY_CFLAGS to control exported symbols
>       st/clover: use VISIBILITY_CXXFLAGS where approapriate
>       automake: fold VISIBILITY_CFLAGS within DEFINES
>       targets/omx: automake: add symbol test
>
>   59 files changed, 369 insertions(+), 70 deletions(-)
>

>From all patches the following have not been pushed

* egl: automake: add symbol test
I would like to hear from Ian if he is concerned about ABI compatibility
of if we hide functions that we should not export.

* targets/egl-static: automake: drop obsolete version-script
* targets/vdpau: automake: add exported symbol tests
* targets/dri: automake: add test for exported symbols
* targets/xvmc: add automake test to check for exported symbols
* targets/omx: automake: add symbol test
As static linking against LLVM is still requested I'm going to avoid the
above patches as they either drop the current symbol restictions and/or
add tests which will fail :\

* automake: fold VISIBILITY_CFLAGS within DEFINES
As Matt suggested this is not a really good idea.

-Emil


More information about the mesa-dev mailing list