Browse Source

Merge topic 'update-kwsys' into release-3.21

7e9a32947b Merge branch 'upstream-KWSys' into update-kwsys
bf4ae1c2b2 KWSys 2021-06-28 (0648cb1a)

Acked-by: Kitware Robot <[email protected]>
Acked-by: Björn Esser <[email protected]>
Merge-request: !6266
Brad King 4 years ago
parent
commit
fb02657b6a
3 changed files with 23 additions and 4 deletions
  1. 1 1
      Source/kwsys/EncodingC.c
  2. 1 1
      Source/kwsys/SystemInformation.cxx
  3. 21 2
      Source/kwsys/testDynamicLoader.cxx

+ 1 - 1
Source/kwsys/EncodingC.c

@@ -60,7 +60,7 @@ size_t kwsysEncoding_wcstombs(char* dest, const wchar_t* str, size_t n)
 char* kwsysEncoding_DupToNarrow(const wchar_t* str)
 {
   char* ret = NULL;
-  size_t length = kwsysEncoding_wcstombs(0, str, 0) + 1;
+  size_t length = kwsysEncoding_wcstombs(NULL, str, 0) + 1;
   if (length > 0) {
     ret = (char*)malloc(length);
     if (ret) {

+ 1 - 1
Source/kwsys/SystemInformation.cxx

@@ -1383,7 +1383,7 @@ void SymbolProperties::Initialize(void* address)
   }
 #  else
 // second fallback use builtin backtrace_symbols
-// to decode the bactrace.
+// to decode the backtrace.
 #  endif
 }
 #endif // don't define this class if we're not using it

+ 21 - 2
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* argv[])
   // 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");