You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
2.3 KiB
63 lines
2.3 KiB
From 635ab930f6185d1ec3e4d99109e2edf0533b0d00 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <besser82@fedoraproject.org>
|
|
Date: Wed, 23 Jun 2021 21:03:15 +0200
|
|
Subject: [PATCH] testDynamicLoader: Use LIBDL_SO macro if defined.
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Starting with glibc v2.34 there is no external version of libdl.so
|
|
anymore. It has been merged into the glibc libc.so.
|
|
|
|
Assuming libdl.so will be present will break the test, thus the
|
|
LIBDL_SO macro should be used. If the macro is not defined on
|
|
the system, we ensure it will be defined using the previously
|
|
hardcoded value.
|
|
|
|
Signed-off-by: Björn Esser <besser82@fedoraproject.org>
|
|
---
|
|
cmake-3.20.4/Source/kwsys/testDynamicLoader.cxx | 14 ++++++++++++--
|
|
1 file changed, 12 insertions(+), 2 deletions(-)
|
|
|
|
Index: cmake-3.21.0-rc1/Source/kwsys/testDynamicLoader.cxx
|
|
===================================================================
|
|
--- cmake-3.21.0-rc1.orig/Source/kwsys/testDynamicLoader.cxx
|
|
+++ cmake-3.21.0-rc1/Source/kwsys/testDynamicLoader.cxx
|
|
@@ -8,6 +8,25 @@
|
|
# include <be/kernel/OS.h> /* disable_debugger() API. */
|
|
#endif
|
|
|
|
+// Needed for __GLIBC__ test macro.
|
|
+#ifdef __linux__
|
|
+# include <features.h>
|
|
+#endif
|
|
+
|
|
+// Will define LIBDL_SO macro on systems with glibc.
|
|
+#ifdef __GLIBC__
|
|
+# include <gnu/lib-names.h>
|
|
+// Define to LIBC_SO, if not defined by above header.
|
|
+# ifndef LIBDL_SO
|
|
+# define LIBDL_SO LIBC_SO
|
|
+# endif
|
|
+#endif
|
|
+
|
|
+// Define the LIBDL_SO macro, if not defined above.
|
|
+#ifndef LIBDL_SO
|
|
+# define LIBDL_SO "libdl.so"
|
|
+#endif
|
|
+
|
|
// Work-around CMake dependency scanning limitation. This must
|
|
// duplicate the above list of headers.
|
|
#if 0
|
|
@@ -107,8 +126,8 @@ int testDynamicLoader(int argc, char* ar
|
|
// This one is actually fun to test, since dlopen is by default
|
|
// loaded...wonder why :)
|
|
res += TestDynamicLoader("foobar.lib", "dlopen", 0, 1, 0);
|
|
- res += TestDynamicLoader("libdl.so", "dlopen", 1, 1, 1);
|
|
- res += TestDynamicLoader("libdl.so", "TestDynamicLoader", 1, 0, 1);
|
|
+ res += TestDynamicLoader(LIBDL_SO, "dlopen", 1, 1, 1);
|
|
+ res += TestDynamicLoader(LIBDL_SO, "TestDynamicLoader", 1, 0, 1);
|
|
#endif
|
|
// Now try on the generated library
|
|
std::string libname = GetLibName(KWSYS_NAMESPACE_STRING "TestDynload");
|