From 4719e586c0f92fa7546fa954115b92d2ae9aee9f Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Thu, 9 Mar 2017 21:21:09 +0000 Subject: [PATCH] Add missing visibility compiler flags We have been building the shared library for Epoxy without the symbol visibility flags for the compiler, which means we've been leaking internal symbols all over the floor. Fixes: #111 --- meson.build | 10 ++++++---- src/meson.build | 4 +--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/meson.build b/meson.build index 95aac5c..afe576b 100644 --- a/meson.build +++ b/meson.build @@ -140,9 +140,11 @@ foreach cflag: test_cflags endif endforeach -# Visibility compiler flags -visibility_cflags = [] -if get_option('default_library') != 'static' +libtype = get_option('default_library') + +# Visibility compiler flags; we only use this for shared libraries +if libtype == 'shared' + visibility_cflags = [] if host_system == 'windows' conf.set('DLL_EXPORT', true) if cc.get_id() == 'msvc' @@ -152,7 +154,7 @@ if get_option('default_library') != 'static' visibility_cflags += [ '-fvisibility=hidden' ] endif else - conf.set('EPOXY_PUBLIC', '__attribute__((visibility("default")))') + conf.set('EPOXY_PUBLIC', '__attribute__((visibility("default"))) extern') visibility_cflags += [ '-fvisibility=hidden' ] endif endif diff --git a/src/meson.build b/src/meson.build index a3d76db..ce6fe45 100644 --- a/src/meson.build +++ b/src/meson.build @@ -68,8 +68,6 @@ if host_system == 'windows' endif # Allow building a static version of epoxy -libtype = get_option('default_library') - if libtype != 'shared' libepoxy_static = static_library('epoxy', sources: epoxy_sources + epoxy_headers, @@ -88,7 +86,7 @@ if libtype != 'static' install: true, dependencies: epoxy_deps, include_directories: libepoxy_inc, - c_args: common_cflags, + c_args: common_cflags + visibility_cflags, link_args: common_ldflags) libepoxy = libepoxy_shared endif