diff --git a/repos/core-x86_64/PKGBUILD b/repos/core-x86_64/PKGBUILD index e2e1448..9b2fd75 100644 --- a/repos/core-x86_64/PKGBUILD +++ b/repos/core-x86_64/PKGBUILD @@ -18,9 +18,11 @@ options=(!emptydirs) _commit=94b38beff1347ec4a733199f7a7abdacaa958678 # glib-2-54 source=("git+https://git.gnome.org/browse/glib#commit=$_commit" noisy-glib-compile-schemas.diff + libs.diff glib-compile-schemas.hook gio-querymodules.hook) sha256sums=('SKIP' '81a4df0b638730cffb7fa263c04841f7ca6b9c9578ee5045db6f30ff0c3fc531' + '2fb828f51727bd9c8b48cfd9d6833c8b4ff82803331f6e2340b0ec8edfe57c52' 'e1123a5d85d2445faac33f6dae1085fdd620d83279a4e130a83fe38db52b62b3' '5ba204a2686304b1454d401a39a9d27d09dd25e4529664e3fd565be3d439f8b6') @@ -35,6 +37,9 @@ prepare() { # Suppress noise from glib-compile-schemas.hook patch -Np1 -i ../noisy-glib-compile-schemas.diff + # https://bugzilla.gnome.org/show_bug.cgi?id=788773 + patch -Np1 -i ../libs.diff + NOCONFIGURE=1 ./autogen.sh } diff --git a/repos/core-x86_64/libs.diff b/repos/core-x86_64/libs.diff new file mode 100644 index 0000000..eef85b8 --- /dev/null +++ b/repos/core-x86_64/libs.diff @@ -0,0 +1,110 @@ +diff --git i/gio/meson.build w/gio/meson.build +index 4a10d49d7eb3229c..77537a77a26dcb5b 100644 +--- i/gio/meson.build ++++ w/gio/meson.build +@@ -741,7 +741,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 i/glib/meson.build w/glib/meson.build +index f12a8b45bbbfec8f..2a505b3dd79ef163 100644 +--- i/glib/meson.build ++++ w/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 i/gmodule/meson.build w/gmodule/meson.build +index 191bca2446f9977e..fd0219d9225f2f3f 100644 +--- i/gmodule/meson.build ++++ w/gmodule/meson.build +@@ -37,7 +37,7 @@ elif cc.has_function('NSLinkModule') + elif cc.links(dlopen_dlsym_test_code, args : '-ldl', name : 'dlopen() and dlsym() in libdl') + g_module_impl = 'G_MODULE_IMPL_DL' + libdl_dep = cc.find_library('dl') +- g_module_lib_args = '-ldl' ++ g_module_lib_args = ['-ldl'] + endif + + # additional checks for G_MODULE_IMPL_DL +@@ -72,25 +72,29 @@ if g_module_impl == '' + message('WARNING: No suitable GModule implementation found!') + endif + ++# For pc files ++glib_conf.set('G_MODULE_SUPPORTED', g_module_impl == '0' ? 'false' : 'true') ++glib_conf.set('G_MODULE_LIBS', ' '.join(g_module_lib_args)) ++ + gmoduleconf_conf.set('G_MODULE_IMPL', g_module_impl) +-gmoduleconf_conf.set('G_MODULE_SUPPORTED', g_module_impl != '0') + gmoduleconf_conf.set('G_MODULE_HAVE_DLERROR', g_module_have_dlerror) + gmoduleconf_conf.set('G_MODULE_NEED_USCORE', g_module_need_uscore) + gmoduleconf_conf.set('G_MODULE_BROKEN_RTLD_GLOBAL', g_module_broken_rtld_global) + + gmoduleconf_h = configure_file(input : 'gmoduleconf.h.in', + output : 'gmoduleconf.h', + configuration : gmoduleconf_conf) + + install_headers(['gmodule.h'], subdir : 'glib-2.0') + + libgmodule = shared_library('gmodule-2.0', + sources : ['gmodule.c'], + version : library_version, + soversion : soversion, + 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 i/gobject/meson.build w/gobject/meson.build +index 65ffef0697b3bad4..32f6f91db12f29b6 100644 +--- i/gobject/meson.build ++++ w/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 i/gthread/meson.build w/gthread/meson.build +index 8ccac3369894bda4..2d5913a91525460f 100644 +--- i/gthread/meson.build ++++ w/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 i/meson.build w/meson.build +index 208c23087627de1e..dd860592b26c9973 100644 +--- i/meson.build ++++ w/meson.build +@@ -1541,6 +1541,13 @@ 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 ++glib_conf.set('G_THREAD_LIBS', '-pthread') ++glib_conf.set('G_THREAD_CFLAGS', '-pthread') ++glib_conf.set('G_MODULE_LDFLAGS', '-Wl,--export-dynamic') ++glib_conf.set('PCRE_REQUIRES', 'libpcre') ++library_link_args = [ '-Wl,-z,nodelete' ] ++ + # Tracing: dtrace + want_dtrace = get_option('enable-dtrace') + enable_dtrace = false