[PATCH 0/2] intel: hide library symbols by default

Eric Engestrom eric.engestrom at intel.com
Thu Sep 13 20:13:15 UTC 2018


On Thursday, 2018-09-13 21:11:18 +0100, Eric Engestrom wrote:
> On Thursday, 2018-09-13 12:43:53 -0700, Lucas De Marchi wrote:
> > On 9/13/18 1:03 AM, Eric Engestrom wrote:
> > > On Wednesday, 2018-09-12 14:05:34 -0700, Lucas De Marchi wrote:
> > > > Rely on -fvisibility=hidden to hide the symbols. This only applies to
> > > > drm_intel.so sice there's no point in extending this if it receives a
> > > > nack for some reason. For the same reason, only done on meson as well.
> > > > 
> > > > drm_private can also be removed from other symbols. If this passes a
> > > > smoke test I'll add a patch on v2 doing so.
> > > 
> > > Series is
> > > Reviewed-by: Eric Engestrom <eric.engestrom at intel.com>
> > > 
> > > but yeah, without that 3rd patch to remove drm_private it isn't all that
> > > useful :P
> > 
> > It actually is. It already closes the door for leaking internal symbols. the
> > drm_internal becomes a nop to be removed. I will include it in v2.
> 
> Ha, you're right, my bad :)
> You could land it as it then, and remove drm_private in a follow up patch.

Also: remember that before removing drm_private, you'll need to change
all the build systems to -fvisibility=hidden.

> 
> > 
> > > 
> > > Do you plan on converting the rest of libdrm if/when this gets accepted?
> > > It looks like you already got all the scripts ready to go ;)
> > 
> > I will take a look on including them for v2 already. I just wish I
> > remembered how to use coccinelle for source code transformation like this.
> > The commands above work ok, but there's some manual work to adapt for things
> > like "int\nfoo() { }" vs "int foo() { }".
> 
> Thanks!
> 
> > 
> > Lucas De Marchi
> > 
> > > 
> > > > 
> > > >  From git log archeology and mention in another thread we used to pass
> > > > -fvisibility=hidden, but reverted to the contrary due to bug in obscure
> > > > toolchain some years ago (see 0f8da82500ec542e269092c0718479e25eaff5f6).
> > > > I think it's time to revisit that decision: we have plenty of other
> > > > projects doing that nowadays without problem.
> > > > 
> > > > Lucas De Marchi (2):
> > > >    intel: annotate public functions
> > > >    meson: intel: make symbols hidden by default
> > > > 
> > > >   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 ++
> > > >   6 files changed, 85 insertions(+), 82 deletions(-)
> > > > 
> > > > -- 
> > > > 2.17.1
> > > > 


More information about the dri-devel mailing list