diff -durN glib-2.73.2.orig/gio/meson.build glib-2.73.2/gio/meson.build --- glib-2.73.2.orig/gio/meson.build 2022-07-12 19:32:22.000000000 +0300 +++ glib-2.73.2/gio/meson.build 2022-07-12 22:05:40.081785216 +0300 @@ -802,6 +802,12 @@ gio_dtrace_hdr = [] endif +compat_map = 'compat.map' +compat_lds = 'compat.lds' +compat_map_flag = '-Wl,--version-script,@0@/@1@'.format(meson.current_source_dir(), compat_map) +compat_lds_flag = '-Wl,@0@/@1@'.format(meson.current_source_dir(), compat_lds) +compat_ldflags = [ compat_map_flag, compat_lds_flag, ] + libgio = library('gio-2.0', gioenumtypes_h, gioenumtypes_c, gnetworking_h, gio_sources, gio_dtrace_hdr, gio_dtrace_obj, @@ -819,7 +825,8 @@ c_args : gio_c_args, objc_args : gio_c_args, # intl.lib is not compatible with SAFESEH - link_args : [noseh_link_args, glib_link_flags], + link_args : [noseh_link_args, glib_link_flags, compat_ldflags], + link_depends: [ compat_map, compat_lds ], ) if get_option('gio_module_dir') != '' diff -durN glib-2.73.2.orig/glib/meson.build glib-2.73.2/glib/meson.build --- glib-2.73.2.orig/glib/meson.build 2022-07-12 19:32:22.000000000 +0300 +++ glib-2.73.2/glib/meson.build 2022-07-12 22:08:50.069573824 +0300 @@ -364,6 +364,13 @@ endif glib_c_args = ['-DG_LOG_DOMAIN="GLib"', '-DGLIB_COMPILATION'] + pcre2_static_args + glib_hidden_visibility_args + +compat_map = 'compat.map' +compat_lds = 'compat.lds' +compat_map_flag = '-Wl,--version-script,@0@/@1@'.format(meson.current_source_dir(), compat_map) +compat_lds_flag = '-Wl,@0@/@1@'.format(meson.current_source_dir(), compat_lds) +compat_ldflags = [ compat_map_flag, compat_lds_flag, ] + libglib = library('glib-2.0', glib_dtrace_obj, glib_dtrace_hdr, sources : [deprecated_sources, glib_sources], @@ -372,7 +379,8 @@ darwin_versions : darwin_versions, install : true, # intl.lib is not compatible with SAFESEH - link_args : [noseh_link_args, glib_link_flags, win32_ldflags], + link_args : [noseh_link_args, glib_link_flags, compat_ldflags, win32_ldflags], + link_depends: [ compat_map, compat_lds ], include_directories : configinc, link_with: [charset_lib, gnulib_lib], dependencies : [pcre2, thread_dep, librt] + libintl_deps + libiconv + platform_deps + [gnulib_libm_dependency, libm] + [libsysprof_capture_dep], diff -durN glib-2.73.2.orig/gobject/meson.build glib-2.73.2/gobject/meson.build --- glib-2.73.2.orig/gobject/meson.build 2022-07-12 19:32:22.000000000 +0300 +++ glib-2.73.2/gobject/meson.build 2022-07-12 22:05:40.082785194 +0300 @@ -125,6 +125,12 @@ # when it includes GLib as a subproject glib_types_h = files('glib-types.h') +compat_map = 'compat.map' +compat_lds = 'compat.lds' +compat_map_flag = '-Wl,--version-script,@0@/@1@'.format(meson.current_source_dir(), compat_map) +compat_lds_flag = '-Wl,@0@/@1@'.format(meson.current_source_dir(), compat_lds) +compat_ldflags = [ compat_map_flag, compat_lds_flag, ] + libgobject = library('gobject-2.0', gobject_dtrace_obj, gobject_dtrace_hdr, glib_enumtypes_h, glib_enumtypes_c, sources : gobject_sources, @@ -135,7 +141,8 @@ include_directories : [configinc], dependencies : [libffi_dep, libglib_dep], c_args : ['-DG_LOG_DOMAIN="GLib-GObject"', '-DGOBJECT_COMPILATION'] + glib_hidden_visibility_args, - link_args : glib_link_flags, + link_args : [ glib_link_flags, compat_ldflags ], + link_depends: [ compat_map, compat_lds ], ) pkg.generate(libgobject,