diff --git a/README.md b/README.md index c9ca05158e..05e4c9def2 100644 --- a/README.md +++ b/README.md @@ -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. diff --git a/gstreamer-full-default.map b/gstreamer-full-default.map new file mode 100644 index 0000000000..5fd04d07ff --- /dev/null +++ b/gstreamer-full-default.map @@ -0,0 +1,10 @@ +{ + global: + gst_*; + GST_*; + _gst_*; + g_*; + glib_*; + local: + *; +}; diff --git a/meson_options.txt b/meson_options.txt index a3b73a1538..1cc6c547b1 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -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