KWSys 2021-06-28 (0648cb1a)

Code extracted from:

    https://gitlab.kitware.com/utils/kwsys.git

at commit 0648cb1ac5c91430b190f32319c528345b280dc3 (master).

Upstream Shortlog
-----------------

Ben Boeckel (2):
      df91e5f1 EncodingC: use NULL for pointers
      ab959cd2 SystemInformation: fix typo in comment

Björn Esser (2):
      b4a2a03c testDynamicLoader: Use LIBDL_SO macro if defined.
      b954dd54 testDynamicLoader: Use LIBC_SO if LIBDL_SO is not defined by glibc anymore.
This commit is contained in:
KWSys Upstream
2021-06-28 13:30:45 -04:00
committed by Brad King
parent fc5b7905ed
commit bf4ae1c2b2
3 changed files with 23 additions and 4 deletions

View File

@@ -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* kwsysEncoding_DupToNarrow(const wchar_t* str)
{ {
char* ret = NULL; char* ret = NULL;
size_t length = kwsysEncoding_wcstombs(0, str, 0) + 1; size_t length = kwsysEncoding_wcstombs(NULL, str, 0) + 1;
if (length > 0) { if (length > 0) {
ret = (char*)malloc(length); ret = (char*)malloc(length);
if (ret) { if (ret) {

View File

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

View File

@@ -8,6 +8,25 @@
# include <be/kernel/OS.h> /* disable_debugger() API. */ # include <be/kernel/OS.h> /* disable_debugger() API. */
#endif #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 // Work-around CMake dependency scanning limitation. This must
// duplicate the above list of headers. // duplicate the above list of headers.
#if 0 #if 0
@@ -107,8 +126,8 @@ int testDynamicLoader(int argc, char* argv[])
// This one is actually fun to test, since dlopen is by default // This one is actually fun to test, since dlopen is by default
// loaded...wonder why :) // loaded...wonder why :)
res += TestDynamicLoader("foobar.lib", "dlopen", 0, 1, 0); res += TestDynamicLoader("foobar.lib", "dlopen", 0, 1, 0);
res += TestDynamicLoader("libdl.so", "dlopen", 1, 1, 1); res += TestDynamicLoader(LIBDL_SO, "dlopen", 1, 1, 1);
res += TestDynamicLoader("libdl.so", "TestDynamicLoader", 1, 0, 1); res += TestDynamicLoader(LIBDL_SO, "TestDynamicLoader", 1, 0, 1);
#endif #endif
// Now try on the generated library // Now try on the generated library
std::string libname = GetLibName(KWSYS_NAMESPACE_STRING "TestDynload"); std::string libname = GetLibName(KWSYS_NAMESPACE_STRING "TestDynload");