meson: Fix map files and load them to hide private symbols

Map files were using wrong syntax (missing final `;` or invalid chars).

Also, the map files were only monitored for rebuilding, but not really used by
ld, so pass the ldflags with version-script so that private symbols are really
hidden.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/395
This commit is contained in:
Marco Trevisan (Treviño) 2019-01-17 11:54:29 +01:00
parent 562cf14258
commit 371b97af27
8 changed files with 36 additions and 12 deletions

View File

@ -1,6 +1,4 @@
{
global:
gl*;
local:
*;
}
};

View File

@ -8,12 +8,18 @@ cogl_gles2_sources = [
'cogl-gles2-api.c',
]
libmutter_cogl_gles2_map = 'libmutter-cogl-gles2.map'
libmutter_cogl_gles2_link_args = [
'-Wl,--version-script,@0@/@1@'.format(meson.current_source_dir(),
libmutter_cogl_gles2_map),
]
libmutter_cogl_gles2 = shared_library('mutter-cogl-gles2-' + libmutter_api_version,
sources: [cogl_gles2_sources, cogl_gles2_public_headers],
soversion: '0.0.0',
c_args: cogl_c_args,
include_directories: [cogl_includepath, cogl_path_includepath],
link_depends: 'libmutter-cogl-gles2.map',
link_depends: libmutter_cogl_gles2_map,
link_args: libmutter_cogl_gles2_link_args,
dependencies: [
cogl_deps,
libmutter_cogl_dep

View File

@ -3,4 +3,4 @@ global:
cogl_pango_*;
local:
*;
}
};

View File

@ -21,12 +21,18 @@ cogl_pango_deps = [
libmutter_cogl_dep,
]
libmutter_cogl_pango_map = 'libmutter-cogl-pango.map'
libmutter_cogl_pango_link_args = [
'-Wl,--version-script,@0@/@1@'.format(meson.current_source_dir(),
libmutter_cogl_pango_map),
]
libmutter_cogl_pango = shared_library('mutter-cogl-pango-' + libmutter_api_version,
sources: [cogl_pango_sources, cogl_pango_public_headers],
soversion: '0.0.0',
c_args: cogl_c_args,
include_directories: [cogl_includepath, cogl_path_includepath],
link_depends: 'libmutter-cogl-pango.map',
link_depends: libmutter_cogl_pango_map,
link_args: libmutter_cogl_pango_link_args,
dependencies: [cogl_pango_deps],
install_rpath: pkglibdir,
install_dir: pkglibdir,

View File

@ -14,4 +14,4 @@ global:
cogl2_set_*;
local:
*;
}
};

View File

@ -52,12 +52,18 @@ cogl_path_c_args = [
cogl_c_args,
]
libmutter_cogl_path_map = 'libmutter-cogl-path.map'
libmutter_cogl_path_link_args = [
'-Wl,--version-script,@0@/@1@'.format(meson.current_source_dir(),
libmutter_cogl_path_map),
]
libmutter_cogl_path = shared_library('mutter-cogl-path-' + libmutter_api_version,
sources: [cogl_path_sources, cogl_path_public_headers],
soversion: '0.0.0',
c_args: cogl_path_c_args,
include_directories: [cogl_includepath, cogl_path_includepath],
link_depends: 'libmutter-cogl-path.map',
link_depends: libmutter_cogl_path_map,
link_args: libmutter_cogl_path_link_args,
dependencies: [libmutter_cogl_dep, cogl_deps],
install_rpath: pkglibdir,
install_dir: pkglibdir,

View File

@ -45,7 +45,9 @@ global:
_cogl_framebuffer_winsys_update_size;
_cogl_winsys_egl_make_current;
_cogl_winsys_egl_ensure_current;
_cogl_pixel_format_get_bytes_per_pixel).*";
_cogl_pixel_format_get_bytes_per_pixel*;
_cogl_system_error_quark;
_cogl_util_next_p2;
local:
*;
}
};

View File

@ -466,12 +466,18 @@ if have_cogl_tests
endif
libmutter_cogl_name = 'mutter-cogl-' + libmutter_api_version
libmutter_cogl_map = 'libmutter-cogl.map'
libmutter_cogl_link_args = [
'-Wl,--version-script,@0@/@1@'.format(meson.current_source_dir(),
libmutter_cogl_map),
]
libmutter_cogl = shared_library(libmutter_cogl_name,
sources: [cogl_sources, cogl_headers_all],
soversion: '0.0.0',
c_args: cogl_c_args,
include_directories: cogl_includepath,
link_depends: 'libmutter-cogl.map',
link_depends: libmutter_cogl_map,
link_args: libmutter_cogl_link_args,
dependencies: [cogl_deps, cogl_test_deps],
install_rpath: pkglibdir,
install_dir: pkglibdir,