From bf4ae1c2b242e6a37034fac7efd86b0786130bfb Mon Sep 17 00:00:00 2001 From: KWSys Upstream Date: Mon, 28 Jun 2021 13:30:45 -0400 Subject: KWSys 2021-06-28 (0648cb1a) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- EncodingC.c | 2 +- SystemInformation.cxx | 2 +- testDynamicLoader.cxx | 23 +++++++++++++++++++++-- 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/EncodingC.c b/EncodingC.c index e12236a..13127f1 100644 --- a/EncodingC.c +++ b/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) { diff --git a/SystemInformation.cxx b/SystemInformation.cxx index 117ff8d..12f9139 100644 --- a/SystemInformation.cxx +++ b/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 diff --git a/testDynamicLoader.cxx b/testDynamicLoader.cxx index 703ad4d..9ba204e 100644 --- a/testDynamicLoader.cxx +++ b/testDynamicLoader.cxx @@ -8,6 +8,25 @@ # include /* disable_debugger() API. */ #endif +// Needed for __GLIBC__ test macro. +#ifdef __linux__ +# include +#endif + +// Will define LIBDL_SO macro on systems with glibc. +#ifdef __GLIBC__ +# include +// 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"); -- cgit v0.12