summaryrefslogtreecommitdiff
path: root/subprojects/gst-rtsp-server/meson.build
diff options
context:
space:
mode:
authorZebediah Figura <z.figura12@gmail.com>2021-03-24 14:20:18 -0500
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>2022-09-13 15:48:52 +0000
commitc4681ac428fa4b63a2c9ce18bb3da4cddc14e439 (patch)
tree1599b315cf89202ef8adca46976306b00ca7af0c /subprojects/gst-rtsp-server/meson.build
parent9bb560e7ee9d39480302fe62efdcd77592191df6 (diff)
meson: Build with -Wl,-z,nodelete to prevent unloading of dynamic libraries and plugins
GLib made the unfortunate decision to prevent libgobject from ever being unloaded, which means that now any library which registers a static type can't ever be unloaded either (and any library that depends on those, ad nauseam). Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/778>
Diffstat (limited to 'subprojects/gst-rtsp-server/meson.build')
-rw-r--r--subprojects/gst-rtsp-server/meson.build6
1 files changed, 6 insertions, 0 deletions
diff --git a/subprojects/gst-rtsp-server/meson.build b/subprojects/gst-rtsp-server/meson.build
index 0de2bad636..df41235755 100644
--- a/subprojects/gst-rtsp-server/meson.build
+++ b/subprojects/gst-rtsp-server/meson.build
@@ -42,6 +42,12 @@ if cc.has_link_argument('-Wl,-Bsymbolic-functions')
add_project_link_arguments('-Wl,-Bsymbolic-functions', language : 'c')
endif
+# glib doesn't support unloading, which means that unloading and reloading
+# any library that registers static types will fail
+if cc.has_link_argument('-Wl,-z,nodelete')
+ add_project_link_arguments('-Wl,-z,nodelete', language: 'c')
+endif
+
# Symbol visibility
if cc.get_id() == 'msvc'
export_define = '__declspec(dllexport) extern'