Salome HOME
Fix pb with save/restore GEOM for Debian 6.0
authorskv <skv@opencascade.com>
Thu, 24 Nov 2016 10:49:48 +0000 (13:49 +0300)
committerskv <skv@opencascade.com>
Thu, 24 Nov 2016 10:49:48 +0000 (13:49 +0300)
src/Container/Container_i.cxx
src/MPIContainer/MPIContainer_i.cxx
src/ParallelContainer/SALOME_ParallelContainerProxy_i.cxx
src/ParallelContainer/SALOME_ParallelContainer_i.cxx
src/SALOMELocalTrace/LocalTraceBufferPool.cxx

index 68373b289881b5a0bda0e0992352d05987b99b5a..a7eb1197d0366006cc26ca5c43242c0f14224c08 100644 (file)
@@ -514,7 +514,7 @@ Engines_Container_i::load_component_CppImplementation(const char* componentName,
 
 #ifndef WIN32
   void* handle;
-  handle = dlopen( impl_name.c_str() , RTLD_NOW ) ;
+  handle = dlopen( impl_name.c_str() , RTLD_NOW | RTLD_GLOBAL ) ;
   if ( !handle )
     {
       //not loadable. Try to find the lib file in LD_LIBRARY_PATH
index 2c9d5efc39e6d7cc6840e3e8b3e668bfe7cf7507..ed1c745a5ab9d0c945d5663c387913e0322ebe44 100644 (file)
@@ -162,7 +162,7 @@ bool Engines_MPIContainer_i::Lload_component_Library(const char* componentName)
     }
   
   void* handle;
-  handle = dlopen( impl_name.c_str() , RTLD_LAZY ) ;
+  handle = dlopen( impl_name.c_str() , RTLD_LAZY | RTLD_GLOBAL ) ;
   if ( handle )
     {
       _library_map[impl_name] = handle;
@@ -462,7 +462,7 @@ Engines::EngineComponent_ptr Engines_MPIContainer_i::Lload_impl(
 
   std::string absolute_impl_name(_impl_name);
   MESSAGE("[" << _numproc << "] absolute_impl_name=" << absolute_impl_name);
-  void * handle = dlopen(absolute_impl_name.c_str(), RTLD_LAZY);
+  void * handle = dlopen(absolute_impl_name.c_str(), RTLD_LAZY | RTLD_GLOBAL);
   if(!handle){
     INFOS("[" << _numproc << "] Can't load shared library : " << absolute_impl_name);
     INFOS("[" << _numproc << "] error dlopen: " << dlerror());
index 53a9ff7474722c5f44a362ec70e5ca043e7cd28e..c337776e2842af9404d92f0d0bede5b86240bc5a 100644 (file)
@@ -164,7 +164,7 @@ Container_proxy_impl_final::load_component_Library(const char* componentName, CO
 #endif
     void* handle;
 #ifndef WIN32
-    handle = dlopen( impl_name.c_str() , RTLD_LAZY ) ;
+    handle = dlopen( impl_name.c_str() , RTLD_LAZY | RTLD_GLOBAL ) ;
 #else
     handle = dlopen( impl_name.c_str() , 0 ) ;
 #endif
index 6e75e1a2c9475f90fb51f9a19196de0ec04803c3..263b8531c582bf87cc4bc155c005f8b24ccd0e6d 100644 (file)
@@ -321,7 +321,7 @@ Engines_Parallel_Container_i::load_component_Library(const char* componentName,
     MESSAGE("Try to load C++ component");
     void* handle;
 #ifndef WIN32
-    handle = dlopen( impl_name.c_str() , RTLD_LAZY ) ;
+    handle = dlopen( impl_name.c_str() , RTLD_LAZY | RTLD_GLOBAL ) ;
 #else
     handle = dlopen( impl_name.c_str() , 0 ) ;
 #endif
index 8caf45f618c555fd64c193540ef70fb64aface79..e346706cfa8d00b34fe53b7a4b00243cf5ab86e0 100644 (file)
@@ -114,7 +114,7 @@ LocalTraceBufferPool* LocalTraceBufferPool::instance()
               void* handle;
               std::string impl_name = std::string ("lib") + traceKind 
                 + std::string("TraceCollector.so");
-              handle = dlopen( impl_name.c_str() , RTLD_LAZY ) ;
+              handle = dlopen( impl_name.c_str() , RTLD_LAZY | RTLD_GLOBAL ) ;
 #else
               HINSTANCE handle;
               std::string impl_name = std::string ("lib") + traceKind + std::string(".dll");