[glib: 1/2] Check for RTLD_NEXT
- From: Philip Withnall <pwithnall src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib: 1/2] Check for RTLD_NEXT
- Date: Wed, 27 Mar 2019 16:26:04 +0000 (UTC)
commit a53ff7460ef6f03d8e602186b721baea16bfef9f
Author: Руслан Ижбулатов <lrn1986 gmail com>
Date: Wed Mar 20 18:52:48 2019 +0000
Check for RTLD_NEXT
Check for RTLD_NEXT being present, and disable the gsocketclient-slow
test if it's absent, since the shlib dependency of that test requires
RTLD_NEXT to function.
This allows the testsuite to be built on Cygwin, which behaves
exactly like UNIX, but doesn't have RTLD_NEXT.
gio/tests/meson.build | 39 ++++++++++++++++++++++-----------------
meson.build | 6 ++++++
2 files changed, 28 insertions(+), 17 deletions(-)
---
diff --git a/gio/tests/meson.build b/gio/tests/meson.build
index bdd76f0f8..a3efd33ab 100644
--- a/gio/tests/meson.build
+++ b/gio/tests/meson.build
@@ -136,27 +136,32 @@ if host_machine.system() != 'windows'
'unix-mounts' : {},
'unix-streams' : {},
'g-file-info-filesystem-readonly' : {},
- 'gsocketclient-slow' : {
- 'depends' : [
- shared_library('slow-connect-preload',
- 'slow-connect-preload.c',
- name_prefix : '',
- dependencies: cc.find_library('dl'),
- install_dir : installed_tests_execdir,
- install: installed_tests_enabled,
- )
- ],
- 'env' : {
- 'LD_PRELOAD': '@0@/slow-connect-preload.so'.format(meson.current_build_dir())
- },
- 'installed_tests_env' : {
- 'LD_PRELOAD': '@0@/slow-connect-preload.so'.format(installed_tests_execdir),
- },
- },
'gschema-compile' : {'install' : false},
'trash' : {},
}
+ if have_rtld_next
+ gio_tests += {
+ 'gsocketclient-slow' : {
+ 'depends' : [
+ shared_library('slow-connect-preload',
+ 'slow-connect-preload.c',
+ name_prefix : '',
+ dependencies: cc.find_library('dl'),
+ install_dir : installed_tests_execdir,
+ install: installed_tests_enabled,
+ )
+ ],
+ 'env' : {
+ 'LD_PRELOAD': '@0@/slow-connect-preload.so'.format(meson.current_build_dir())
+ },
+ 'installed_tests_env' : {
+ 'LD_PRELOAD': '@0@/slow-connect-preload.so'.format(installed_tests_execdir),
+ },
+ },
+ }
+ endif
+
# Uninstalled because of the check-for-executable logic in DesktopAppInfo
# unable to find the installed executable
if not glib_have_cocoa
diff --git a/meson.build b/meson.build
index d937b5fa3..75659888c 100644
--- a/meson.build
+++ b/meson.build
@@ -584,6 +584,12 @@ if cc.has_header_symbol('dlfcn.h', 'RTLD_GLOBAL')
glib_conf.set('HAVE_RTLD_GLOBAL', 1)
endif
+have_rtld_next = false
+if cc.has_header_symbol('dlfcn.h', 'RTLD_NEXT')
+ have_rtld_next = true
+ glib_conf.set('HAVE_RTLD_NEXT', 1)
+endif
+
# Check whether to use statfs or statvfs
# Some systems have both statfs and statvfs, pick the most "native" for these
if have_func_statfs and have_func_statvfs
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]