gst-full: use a default version script

Use a default version script instead of
Bsymbolic to get rid of x264 and ffmpeg
symbol relocation issue.

https://gitlab.freedesktop.org/gstreamer/gst-build/-/issues/108

Export only glib and gstreamer symbols.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/204>
This commit is contained in:
Stéphane Cerveau 2020-10-12 17:46:04 +02:00
parent 71616b9317
commit d5dcbdb51b
3 changed files with 13 additions and 2 deletions

View file

@ -135,7 +135,8 @@ One can use the `gst-full-version-script` option to pass a
[version script](https://www.gnu.org/software/gnulib/manual/html_node/LD-Version-Scripts.html)
to the linker. This can be used to control the exact symbols that are exported by
the gstreamer-full library, allowing the linker to garbage collect unused code
and so reduce the total library size.
and so reduce the total library size. A default script `gstreamer-full-default.map`
declares only glib/gstreamer symbols as public.
This is an experimental feature, backward uncompatible changes could still be
made in the future.

View file

@ -0,0 +1,10 @@
{
global:
gst_*;
GST_*;
_gst_*;
g_*;
glib_*;
local:
*;
};

View file

@ -21,7 +21,7 @@ option('qt5', type : 'feature', value : 'auto', description : 'Qt5 Support')
option('custom_subprojects', type : 'string', value : '', description : 'Comma-separated project names')
option('gst-full-libraries', type : 'array', value : [],
description : '''List of libraries to expose in gstreamer-full's ABI. gstreamer, glib and gobject are always included.''')
option('gst-full-version-script', type : 'string', value: '',
option('gst-full-version-script', type : 'string', value: 'gstreamer-full-default.map',
description : 'path of the version script to be used by the linker, see https://www.gnu.org/software/gnulib/manual/html_node/LD-Version-Scripts.html')
# Common options, automatically inherited by subprojects