[PATCH libdrm v2 00/13] hide library symbols by default

Lucas De Marchi lucas.demarchi at intel.com
Thu Sep 20 00:05:44 UTC 2018


On Fri, Sep 14, 2018 at 10:28:46AM +0100, Eric Engestrom wrote:
> On Thursday, 2018-09-13 16:57:11 -0700, Lucas De Marchi wrote:
> > Rely on -fvisibility=hidden to hide the symbols. Previous version of
> > this series applying only to drm_intel.so is
> > 
> > 	Reviewed-by: Eric Engestrom <eric.engestrom at intel.com>
> > 
> > but it's not included here since I changed the approach for the build
> > system change.
> 
> Patches 1 (intel), 5 (libdrm) and 12 (meson) are:
> Reviewed-by: Eric Engestrom <eric.engestrom at intel.com>
> 
> The rest of the series is:
> Acked-by: Eric Engestrom <eric.engestrom at intel.com>
> 
> You can also add the same change to Android:
> ----8<----
> diff --git a/Android.common.mk b/Android.common.mk
> index e3de1069dfad4277347c..d0e5d559da1a73cf9fa1 100644
> --- a/Android.common.mk
> +++ b/Android.common.mk
> @@ -2,6 +2,7 @@
>  LOCAL_CFLAGS += \
>         -DMAJOR_IN_SYSMACROS=1 \
>         -DHAVE_VISIBILITY=1 \
> +       -fvisibility=hidden \
>         -DHAVE_LIBDRM_ATOMIC_PRIMITIVES=1
>  
>  LOCAL_CFLAGS += \
> ---->8----

thanks. I added a commit on top with that. I also collected the 
other ack/rev and pushed to my gitlab repo. I will wait to see
if I will resend for someone to push this through or if I will
get write access soon.

> 
> After that, the `drm_private` macro is ready to be removed :)

yep, but the coding reformat is a nightmare since I have realig
parameters to the opening parenthesis in several (but not all)
cases. I may need to try some other automation for that
(git-clang-format?, clang-tidy?, coccinelle?, ...).

thanks
Lucas De Marchi

> 
> > 
> > drm_private can also be removed from other symbols but it proved to be
> > a lot of manual work to re-align all the fields, so I decided to leave
> > it to be done on top as a cleanup.
> > 
> > There were lots of changes to param alignement that had to be done
> > manually, I may have missed some.
> > 
> > Changes from v1:
> > 	- Include changes for all other sub-libraries
> > 	- Include changes to autotools
> > 	- Make main Makefil.am and meson.build define the required
> > 	  flag
> > 
> > This is build-tested locally and on gitlab:
> > https://gitlab.freedesktop.org/demarchi/drm/pipelines/4339
> > 
> > Lucas De Marchi (13):
> >   intel: annotate public functions
> >   libkms: annotate public functions
> >   nouveau: annotate public functions
> >   libkms: annotate public functions
> >   libdrm: annotate public functions
> >   etnaviv: annotate public functions
> >   freedreno: annotate public functions
> >   omap: annotate public functions
> >   radeon: annotate public functions
> >   tegra: annotate public functions
> >   exynos: annotate public functions
> >   meson: make symbols hidden by default
> >   autotools: make symbols hidden by default
> > 
> >  Makefile.am                      |   1 +
> >  amdgpu/Makefile.am               |   1 +
> >  amdgpu/amdgpu_bo.c               | 104 ++++++------
> >  amdgpu/amdgpu_cs.c               | 137 +++++++--------
> >  amdgpu/amdgpu_device.c           |  19 ++-
> >  amdgpu/amdgpu_gpu_info.c         |  51 +++---
> >  amdgpu/amdgpu_vamgr.c            |  24 +--
> >  amdgpu/amdgpu_vm.c               |   5 +-
> >  amdgpu/meson.build               |   2 +-
> >  etnaviv/Makefile.am              |   1 +
> >  etnaviv/etnaviv_bo.c             |  25 +--
> >  etnaviv/etnaviv_cmd_stream.c     |  21 ++-
> >  etnaviv/etnaviv_device.c         |  10 +-
> >  etnaviv/etnaviv_gpu.c            |   6 +-
> >  etnaviv/etnaviv_perfmon.c        |   8 +-
> >  etnaviv/etnaviv_pipe.c           |   8 +-
> >  etnaviv/meson.build              |   2 +-
> >  exynos/Makefile.am               |   1 +
> >  exynos/exynos_drm.c              |  30 ++--
> >  exynos/exynos_fimg2d.c           |  20 +--
> >  exynos/meson.build               |   2 +-
> >  freedreno/Makefile.am            |   1 +
> >  freedreno/freedreno_bo.c         |  32 ++--
> >  freedreno/freedreno_device.c     |  12 +-
> >  freedreno/freedreno_pipe.c       |  14 +-
> >  freedreno/freedreno_ringbuffer.c |  40 ++---
> >  freedreno/meson.build            |   2 +-
> >  intel/Makefile.am                |   1 +
> >  intel/intel_bufmgr.c             |  64 +++----
> >  intel/intel_bufmgr_fake.c        |  10 +-
> >  intel/intel_bufmgr_gem.c         |  73 ++++----
> >  intel/intel_decode.c             |  14 +-
> >  intel/meson.build                |   4 +-
> >  libdrm_macros.h                  |   2 +
> >  libkms/Makefile.am               |   1 +
> >  libkms/api.c                     |  16 +-
> >  libkms/meson.build               |   2 +-
> >  meson.build                      |   5 +-
> >  nouveau/Makefile.am              |   1 +
> >  nouveau/bufctx.c                 |  10 +-
> >  nouveau/meson.build              |   2 +-
> >  nouveau/nouveau.c                |  50 +++---
> >  nouveau/pushbuf.c                |  18 +-
> >  omap/Makefile.am                 |   1 +
> >  omap/meson.build                 |   2 +-
> >  omap/omap_drm.c                  |  36 ++--
> >  radeon/Makefile.am               |   1 +
> >  radeon/meson.build               |   2 +-
> >  radeon/radeon_bo.c               |  24 +--
> >  radeon/radeon_bo_gem.c           |  16 +-
> >  radeon/radeon_cs.c               |  24 +--
> >  radeon/radeon_cs_gem.c           |   4 +-
> >  radeon/radeon_cs_space.c         |   6 +-
> >  radeon/radeon_surface.c          |   8 +-
> >  tegra/Makefile.am                |   3 +-
> >  tegra/meson.build                |   2 +-
> >  tegra/tegra.c                    |  26 +--
> >  tests/Makefile.am                |   1 +
> >  tests/amdgpu/Makefile.am         |   1 +
> >  tests/etnaviv/Makefile.am        |   1 +
> >  tests/exynos/Makefile.am         |   1 +
> >  tests/exynos/meson.build         |   6 +-
> >  tests/kms/Makefile.am            |   3 +-
> >  tests/kms/meson.build            |   2 +-
> >  tests/kmstest/Makefile.am        |   1 +
> >  tests/kmstest/meson.build        |   2 +-
> >  tests/meson.build                |   8 +-
> >  tests/modeprint/Makefile.am      |   1 +
> >  tests/modeprint/meson.build      |   2 +-
> >  tests/modetest/Makefile.am       |   1 +
> >  tests/modetest/meson.build       |   2 +-
> >  tests/nouveau/Makefile.am        |   1 +
> >  tests/nouveau/meson.build        |   2 +-
> >  tests/proptest/Makefile.am       |   1 +
> >  tests/proptest/meson.build       |   2 +-
> >  tests/radeon/Makefile.am         |   1 +
> >  tests/radeon/meson.build         |   2 +-
> >  tests/tegra/Makefile.am          |   4 +-
> >  tests/tegra/meson.build          |   2 +-
> >  tests/vbltest/Makefile.am        |   1 +
> >  tests/vbltest/meson.build        |   2 +-
> >  vc4/Makefile.am                  |   1 +
> >  xf86drm.c                        | 276 ++++++++++++++++---------------
> >  xf86drmHash.c                    |  15 +-
> >  xf86drmMode.c                    | 158 ++++++++++--------
> >  xf86drmRandom.c                  |   9 +-
> >  xf86drmSL.c                      |  23 +--
> >  87 files changed, 803 insertions(+), 736 deletions(-)
> > 
> > -- 
> > 2.17.1
> > 


More information about the dri-devel mailing list