Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Remove usage of RTLD_DEEPBIND.
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Tue, 18 Sep 2018 13:16:37 +0000 (15:16 +0200)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Tue, 18 Sep 2018 14:32:17 +0000 (16:32 +0200)
It does not seem to be mandatory, and sanitizers are complaining.

Let's see if it passes on CI servers.

src/smpi/internals/smpi_global.cpp

index aaef32d..4e218d1 100644 (file)
@@ -53,14 +53,6 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_kernel, smpi, "Logging specific to SMPI (ke
   extern "C" void _gfortran_set_args(int, char **);
 #endif
 
   extern "C" void _gfortran_set_args(int, char **);
 #endif
 
-#ifndef RTLD_DEEPBIND
-/* RTLD_DEEPBIND is a bad idea of GNU ld that obviously does not exist on other platforms
- * See https://www.akkadia.org/drepper/dsohowto.pdf
- * and https://lists.freebsd.org/pipermail/freebsd-current/2016-March/060284.html
-*/
-#define RTLD_DEEPBIND 0
-#endif
-
 #if HAVE_PAPI
 #include "papi.h"
 std::string papi_default_config_name = "default";
 #if HAVE_PAPI
 #include "papi.h"
 std::string papi_default_config_name = "default";
@@ -610,7 +602,7 @@ static void smpi_init_privatization_dlopen(std::string executable)
 
       rank++;
       // Load the copy and resolve the entry point:
 
       rank++;
       // Load the copy and resolve the entry point:
-      void* handle    = dlopen(target_executable.c_str(), RTLD_LAZY | RTLD_LOCAL | RTLD_DEEPBIND);
+      void* handle    = dlopen(target_executable.c_str(), RTLD_LAZY | RTLD_LOCAL);
       int saved_errno = errno;
       if (simgrid::config::get_value<bool>("smpi/keep-temps") == false) {
         unlink(target_executable.c_str());
       int saved_errno = errno;
       if (simgrid::config::get_value<bool>("smpi/keep-temps") == false) {
         unlink(target_executable.c_str());