mirror of
https://github.com/Kitware/CMake.git
synced 2026-08-08 16:50:48 +00:00
Merge topic 'update-kwsys'
ebe735cc3cMerge branch 'upstream-KWSys' into update-kwsys8931545843KWSys 2026-08-07 (1c806117) Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !12377
This commit is contained in:
@@ -30,16 +30,16 @@
|
||||
// Each part of the ifdef contains a complete implementation for
|
||||
// the static methods of DynamicLoader.
|
||||
|
||||
#define CHECK_OPEN_FLAGS(var, supported, ret) \
|
||||
#define CHECK_OPEN_FLAGS(var, supported) \
|
||||
do { \
|
||||
/* Check for unknown flags. */ \
|
||||
if ((var & AllOpenFlags) != var) { \
|
||||
return ret; \
|
||||
return InvalidLibrary; \
|
||||
} \
|
||||
\
|
||||
/* Check for unsupported flags. */ \
|
||||
if ((var & (supported)) != var) { \
|
||||
return ret; \
|
||||
return InvalidLibrary; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
@@ -61,7 +61,7 @@ namespace KWSYS_NAMESPACE {
|
||||
DynamicLoader::LibraryHandle DynamicLoader::OpenLibrary(
|
||||
std::string const& libname, int flags)
|
||||
{
|
||||
return 0;
|
||||
return InvalidLibrary;
|
||||
}
|
||||
|
||||
int DynamicLoader::CloseLibrary(DynamicLoader::LibraryHandle lib)
|
||||
@@ -76,7 +76,7 @@ int DynamicLoader::CloseLibrary(DynamicLoader::LibraryHandle lib)
|
||||
DynamicLoader::SymbolPointer DynamicLoader::GetSymbolAddress(
|
||||
DynamicLoader::LibraryHandle lib, std::string const& sym)
|
||||
{
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
char const* DynamicLoader::LastError()
|
||||
@@ -96,7 +96,7 @@ namespace KWSYS_NAMESPACE {
|
||||
DynamicLoader::LibraryHandle DynamicLoader::OpenLibrary(
|
||||
std::string const& libname, int flags)
|
||||
{
|
||||
CHECK_OPEN_FLAGS(flags, 0, 0);
|
||||
CHECK_OPEN_FLAGS(flags, 0);
|
||||
|
||||
return shl_load(libname.c_str(), BIND_DEFERRED | DYNAMIC_PATH, 0L);
|
||||
}
|
||||
@@ -121,7 +121,7 @@ DynamicLoader::SymbolPointer DynamicLoader::GetSymbolAddress(
|
||||
* TYPE_UNDEFINED Look for any symbol.
|
||||
*/
|
||||
status = shl_findsym(&lib, sym.c_str(), TYPE_UNDEFINED, &addr);
|
||||
void* result = (status < 0) ? (void*)0 : addr;
|
||||
void* result = (status < 0) ? nullptr : addr;
|
||||
|
||||
// Hack to cast pointer-to-data to pointer-to-function.
|
||||
return *reinterpret_cast<DynamicLoader::SymbolPointer*>(&result);
|
||||
@@ -161,7 +161,7 @@ namespace KWSYS_NAMESPACE {
|
||||
DynamicLoader::LibraryHandle DynamicLoader::OpenLibrary(
|
||||
std::string const& libname, int flags)
|
||||
{
|
||||
CHECK_OPEN_FLAGS(flags, 0, 0);
|
||||
CHECK_OPEN_FLAGS(flags, 0);
|
||||
|
||||
NSObjectFileImageReturnCode rc;
|
||||
NSObjectFileImage image = 0;
|
||||
@@ -169,7 +169,7 @@ DynamicLoader::LibraryHandle DynamicLoader::OpenLibrary(
|
||||
rc = NSCreateObjectFileImageFromFile(libname.c_str(), &image);
|
||||
// rc == NSObjectFileImageInappropriateFile when trying to load a dylib file
|
||||
if (rc != NSObjectFileImageSuccess) {
|
||||
return 0;
|
||||
return InvalidLibrary;
|
||||
}
|
||||
NSModule handle = NSLinkModule(image, libname.c_str(),
|
||||
NSLINKMODULE_OPTION_BINDNOW |
|
||||
@@ -192,7 +192,7 @@ int DynamicLoader::CloseLibrary(DynamicLoader::LibraryHandle lib)
|
||||
DynamicLoader::SymbolPointer DynamicLoader::GetSymbolAddress(
|
||||
DynamicLoader::LibraryHandle lib, std::string const& sym)
|
||||
{
|
||||
void* result = 0;
|
||||
void* result = nullptr;
|
||||
// Need to prepend symbols with '_' on Apple-gcc compilers
|
||||
std::string rsym = '_' + sym;
|
||||
|
||||
@@ -207,7 +207,7 @@ DynamicLoader::SymbolPointer DynamicLoader::GetSymbolAddress(
|
||||
|
||||
char const* DynamicLoader::LastError()
|
||||
{
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
} // namespace KWSYS_NAMESPACE
|
||||
@@ -223,7 +223,7 @@ namespace KWSYS_NAMESPACE {
|
||||
DynamicLoader::LibraryHandle DynamicLoader::OpenLibrary(
|
||||
std::string const& libname, int flags)
|
||||
{
|
||||
CHECK_OPEN_FLAGS(flags, SearchBesideLibrary, nullptr);
|
||||
CHECK_OPEN_FLAGS(flags, SearchBesideLibrary);
|
||||
|
||||
DWORD llFlags = 0;
|
||||
if (flags & SearchBesideLibrary) {
|
||||
@@ -310,14 +310,14 @@ static image_id last_dynamic_err = B_OK;
|
||||
DynamicLoader::LibraryHandle DynamicLoader::OpenLibrary(
|
||||
std::string const& libname, int flags)
|
||||
{
|
||||
CHECK_OPEN_FLAGS(flags, 0, 0);
|
||||
CHECK_OPEN_FLAGS(flags, 0);
|
||||
|
||||
// image_id's are integers, errors are negative. Add one just in case we
|
||||
// get a valid image_id of zero (is that even possible?).
|
||||
image_id rc = load_add_on(libname.c_str());
|
||||
if (rc < 0) {
|
||||
last_dynamic_err = rc;
|
||||
return 0;
|
||||
return InvalidLibrary;
|
||||
}
|
||||
|
||||
return rc + 1;
|
||||
@@ -390,7 +390,7 @@ namespace KWSYS_NAMESPACE {
|
||||
DynamicLoader::LibraryHandle DynamicLoader::OpenLibrary(
|
||||
std::string const& libname, int flags)
|
||||
{
|
||||
CHECK_OPEN_FLAGS(flags, 0, nullptr);
|
||||
CHECK_OPEN_FLAGS(flags, 0);
|
||||
|
||||
char* name = (char*)calloc(1, libname.size() + 1);
|
||||
dld_init(program_invocation_name);
|
||||
@@ -436,7 +436,7 @@ namespace KWSYS_NAMESPACE {
|
||||
DynamicLoader::LibraryHandle DynamicLoader::OpenLibrary(
|
||||
std::string const& libname, int flags)
|
||||
{
|
||||
CHECK_OPEN_FLAGS(flags, RTLDGlobal, nullptr);
|
||||
CHECK_OPEN_FLAGS(flags, RTLDGlobal);
|
||||
|
||||
int llFlags = RTLD_LAZY;
|
||||
if (flags & RTLDGlobal) {
|
||||
|
||||
@@ -49,18 +49,19 @@ public:
|
||||
// They are different on several different OS's
|
||||
#if defined(__hpux)
|
||||
typedef shl_t LibraryHandle;
|
||||
static constexpr LibraryHandle InvalidLibrary = 0;
|
||||
#elif defined(_WIN32) && !defined(__CYGWIN__)
|
||||
typedef HMODULE LibraryHandle;
|
||||
#elif defined(__APPLE__)
|
||||
# if MAC_OS_X_VERSION_MAX_ALLOWED < 1030
|
||||
static constexpr LibraryHandle InvalidLibrary = nullptr;
|
||||
#elif defined(__APPLE__) && (MAC_OS_X_VERSION_MAX_ALLOWED < 1030)
|
||||
typedef NSModule LibraryHandle;
|
||||
# else
|
||||
typedef void* LibraryHandle;
|
||||
# endif
|
||||
static constexpr LibraryHandle InvalidLibrary = 0;
|
||||
#elif defined(__BEOS__)
|
||||
typedef image_id LibraryHandle;
|
||||
static constexpr LibraryHandle InvalidLibrary = 0;
|
||||
#else // POSIX
|
||||
typedef void* LibraryHandle;
|
||||
static constexpr LibraryHandle InvalidLibrary = nullptr;
|
||||
#endif
|
||||
|
||||
// Return type from DynamicLoader::GetSymbolAddress.
|
||||
|
||||
Reference in New Issue
Block a user