From ede4e130f49f7fd744cab76fe2de1d1650dedb68 Mon Sep 17 00:00:00 2001 From: Ikey Doherty Date: Mon, 23 Oct 2017 20:33:56 +0100 Subject: [PATCH] Use explicit version scripts to control symbol visibility Unfortunately Nica is now very noisy and infects our symbol visibility, so we'll now control exactly what symbols are exported in our .so's. Signed-off-by: Ikey Doherty --- src/intercept/meson.build | 3 +++ src/intercept/sym.map | 7 +++++++ src/redirect/meson.build | 3 +++ src/redirect/sym.map | 6 ++++++ 4 files changed, 19 insertions(+) create mode 100644 src/intercept/sym.map create mode 100644 src/redirect/sym.map diff --git a/src/intercept/meson.build b/src/intercept/meson.build index cde763c..8d131d3 100644 --- a/src/intercept/meson.build +++ b/src/intercept/meson.build @@ -6,10 +6,13 @@ if with_libintercept == true 'main.c', ] + sym_map = join_paths(meson.current_source_dir(), 'sym.map') + main_intercept = shared_library( 'lsi-intercept', sources: intercept_sources, c_args: ['-fvisibility=hidden'], + link_args: ['-Wl,--version-script=@0@'.format(sym_map)], include_directories: nica_includes, dependencies: [ link_lsi_common, diff --git a/src/intercept/sym.map b/src/intercept/sym.map new file mode 100644 index 0000000..0f805e4 --- /dev/null +++ b/src/intercept/sym.map @@ -0,0 +1,7 @@ +{ + global: + la_objsearch; + la_version; + local: + *; +}; diff --git a/src/redirect/meson.build b/src/redirect/meson.build index b4cd395..be49063 100644 --- a/src/redirect/meson.build +++ b/src/redirect/meson.build @@ -11,10 +11,13 @@ if with_libredirect == true 'profiles/ark.c', ] + sym_map = join_paths(meson.current_source_dir(), 'sym.map') + main_redirect = shared_library( 'lsi-redirect', sources: redirect_sources, c_args: ['-fvisibility=hidden'], + link_args: ['-Wl,--version-script=@0@'.format(sym_map)], include_directories: nica_includes, dependencies: [ libdl, diff --git a/src/redirect/sym.map b/src/redirect/sym.map new file mode 100644 index 0000000..ea3974f --- /dev/null +++ b/src/redirect/sym.map @@ -0,0 +1,6 @@ +{ + global: + open; + local: + *; +};