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) [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 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 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 This is an experimental feature, backward uncompatible changes could still be
made in the future. 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('custom_subprojects', type : 'string', value : '', description : 'Comma-separated project names')
option('gst-full-libraries', type : 'array', value : [], 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.''') 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') 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 # Common options, automatically inherited by subprojects