mirror of
https://github.com/FairRootGroup/FairMQ.git
synced 2025-10-13 08:41:16 +00:00
Load dynamic plugins with RTLD_GLOBAL flag
The MPI MCA framework is another DSO-based plugin system which is loading further plugins within our plugins. It does not work with RTLD_LOCAL at the moment. Enabling RTLD_GLOBAL for all dynamic plugins for now. If this leads to problems, we can refactor and offer this load flag as an option.
This commit is contained in:
parent
1191c3cda5
commit
0c54aab19d
|
@ -175,7 +175,7 @@ auto fair::mq::PluginManager::LoadPluginDynamic(const string& pluginName) -> voi
|
||||||
try {
|
try {
|
||||||
LoadSymbols(pluginName,
|
LoadSymbols(pluginName,
|
||||||
searchPath / ToString(LibPrefix(), pluginName),
|
searchPath / ToString(LibPrefix(), pluginName),
|
||||||
dll::load_mode::append_decorations);
|
dll::load_mode::append_decorations | dll::load_mode::rtld_global);
|
||||||
fPluginOrder.push_back(pluginName);
|
fPluginOrder.push_back(pluginName);
|
||||||
success = true;
|
success = true;
|
||||||
break;
|
break;
|
||||||
|
@ -199,7 +199,7 @@ auto fair::mq::PluginManager::LoadPluginDynamic(const string& pluginName) -> voi
|
||||||
LibPrefix(),
|
LibPrefix(),
|
||||||
pluginName,
|
pluginName,
|
||||||
boost::dll::detail::shared_library_impl::suffix().native()),
|
boost::dll::detail::shared_library_impl::suffix().native()),
|
||||||
dll::load_mode::search_system_folders);
|
dll::load_mode::search_system_folders | dll::load_mode::rtld_global);
|
||||||
fPluginOrder.push_back(pluginName);
|
fPluginOrder.push_back(pluginName);
|
||||||
} catch (boost::system::system_error& e) {
|
} catch (boost::system::system_error& e) {
|
||||||
throw PluginLoadError(
|
throw PluginLoadError(
|
||||||
|
|
Loading…
Reference in New Issue
Block a user