 gio/meson.build     | 2 +-
 glib/meson.build    | 2 +-
 gmodule/meson.build | 1 +
 gobject/meson.build | 1 +
 gthread/meson.build | 1 +
 meson.build         | 3 +++
 6 files changed, 8 insertions(+), 2 deletions(-)

diff --git c/gio/meson.build i/gio/meson.build
index 32526362666b5e80..d7030aa29a6f17eb 100644
--- c/gio/meson.build
+++ i/gio/meson.build
@@ -727,7 +727,7 @@ libgio = shared_library('gio-2.0',
                   libgobject_dep, libgmodule_dep] + platform_deps + network_libs,
   c_args : gio_c_args,
   # intl.lib is not compatible with SAFESEH
-  link_args : noseh_link_args,
+  link_args : noseh_link_args + library_link_args,
 )
 
 libgio_dep = declare_dependency(link_with : libgio,
diff --git c/glib/meson.build i/glib/meson.build
index 1da0bcd3cc601b9e..d468aec7ed9da866 100644
--- c/glib/meson.build
+++ i/glib/meson.build
@@ -227,7 +227,7 @@ libglib = shared_library('glib-2.0',
   soversion : soversion,
   install : true,
   # intl.lib is not compatible with SAFESEH
-  link_args : noseh_link_args,
+  link_args : noseh_link_args + library_link_args,
   include_directories : configinc,
   link_with : [charset_lib, gnulib_lib],
   dependencies : [pcre, thread_dep, libintl, librt] + libiconv + platform_deps,
diff --git c/gmodule/meson.build i/gmodule/meson.build
index 191bca2446f9977e..95aec6e40672aff0 100644
--- c/gmodule/meson.build
+++ i/gmodule/meson.build
@@ -91,6 +91,7 @@ libgmodule = shared_library('gmodule-2.0',
   install : true,
   include_directories : [configinc, gmoduleinc],
   dependencies : [libdl_dep, libglib_dep],
+  link_args : library_link_args,
   c_args : ['-DG_LOG_DOMAIN="GModule"', '-DG_DISABLE_DEPRECATED'] + glib_hidden_visibility_args)
 
 libgmodule_dep = declare_dependency(link_with : libgmodule,
diff --git c/gobject/meson.build i/gobject/meson.build
index aecca57c743d5956..5c7e205dfc323ae6 100644
--- c/gobject/meson.build
+++ i/gobject/meson.build
@@ -61,6 +61,7 @@ libgobject = shared_library('gobject-2.0',
   install : true,
   include_directories : [configinc],
   dependencies : [libintl, libffi_dep, libglib_dep],
+  link_args : library_link_args,
   c_args : ['-DG_LOG_DOMAIN="GLib-GObject"', '-DGOBJECT_COMPILATION'] + glib_hidden_visibility_args)
 
 libgobject_dep = declare_dependency(link_with : libgobject,
diff --git c/gthread/meson.build i/gthread/meson.build
index 8ccac3369894bda4..2d5913a91525460f 100644
--- c/gthread/meson.build
+++ i/gthread/meson.build
@@ -6,4 +6,5 @@ libgthread = shared_library('gthread-2.0',
   soversion : soversion,
   install : true,
   dependencies : [libglib_dep],
+  link_args : library_link_args,
   c_args : ['-DG_LOG_DOMAIN="GThread"' ] + glib_hidden_visibility_args)
diff --git c/meson.build i/meson.build
index b38123d896749086..9b3a88dd37f3b769 100644
--- c/meson.build
+++ i/meson.build
@@ -1541,6 +1541,9 @@ glib_conf.set('GIO_MODULE_DIR', '${libdir}/gio/modules')
 # @G_MODULE_LIBS@ @SELINUX_LIBS@ @COCOA_LIBS@ @CARBON_LIBS@ @G_LIBS_EXTRA@
 # @PCRE_REQUIRES@ @GLIB_EXTRA_CFLAGS@ @G_THREAD_CFLAGS@
 
+# HACK
+library_link_args = [ '-Wl,-z,nodelete' ]
+
 # Tracing: dtrace
 want_dtrace = get_option('enable-dtrace')
 enable_dtrace = false
