Skip to content
Snippets Groups Projects
Commit 292392f0 authored by Brad King's avatar Brad King Committed by Kitware Robot
Browse files

Merge topic 'RTLDGlobalSupportLinux'


e28d7282 DynamicLoader: Add RTLD_GLOBAL as a supported flag on linux

Acked-by: default avatarKitware Robot <kwrobot@kitware.com>
Acked-by: default avatarBen Boeckel <ben.boeckel@kitware.com>
Merge-request: !233
parents b8c734ba e28d7282
No related branches found
No related tags found
1 merge request!233DynamicLoader: Add RTLD_GLOBAL as a supported flag on linux
......@@ -436,9 +436,14 @@ namespace KWSYS_NAMESPACE {
DynamicLoader::LibraryHandle DynamicLoader::OpenLibrary(
const std::string& libname, int flags)
{
CHECK_OPEN_FLAGS(flags, 0, nullptr);
CHECK_OPEN_FLAGS(flags, RTLDGlobal, nullptr);
int llFlags = RTLD_LAZY;
if (flags & RTLDGlobal) {
llFlags |= RTLD_GLOBAL;
}
return dlopen(libname.c_str(), RTLD_LAZY);
return dlopen(libname.c_str(), llFlags);
}
int DynamicLoader::CloseLibrary(DynamicLoader::LibraryHandle lib)
......
......@@ -73,7 +73,12 @@ public:
// This is currently only supported on Windows.
SearchBesideLibrary = 0x00000001,
AllOpenFlags = SearchBesideLibrary
// Make loaded symbols visible globally
//
// This is currently only supported on *nix systems.
RTLDGlobal = 0x00000002,
AllOpenFlags = SearchBesideLibrary | RTLDGlobal
};
/** Load a dynamic library into the current process.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment