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 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev