- std::string ErrorMessage;
-
- if (!plugins)
- plugins = new std::vector<std::string>();
-
- try {
- sys::DynamicLibrary::LoadLibraryPermanently(Filename.c_str());
- plugins->push_back(Filename);
- } catch (const std::string& errmsg) {
- if (errmsg.empty()) {
- ErrorMessage = "Unknown";
- } else {
- ErrorMessage = errmsg;
- }
+ sys::SmartScopedLock<true> Lock(*PluginsLock);
+ std::string Error;
+ if (sys::DynamicLibrary::LoadLibraryPermanently(Filename.c_str(), &Error)) {
+ errs() << "Error opening '" << Filename << "': " << Error
+ << "\n -load request ignored.\n";
+ } else {
+ Plugins->push_back(Filename);