From: Arnaud Giersch Date: Sat, 31 Mar 2018 15:16:08 +0000 (+0200) Subject: Disable privatization when not run through smpi_main(). X-Git-Tag: v3.20~562^2~3 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/53000ffa8ea6d39f22a7f62717f1ea00471a81d8 Disable privatization when not run through smpi_main(). SMPI_switch_data_segment is not initialized, and mmap privatization is crashing when trying to call it. --- diff --git a/src/smpi/internals/smpi_global.cpp b/src/smpi/internals/smpi_global.cpp index 99323b64c6..06f18a01e3 100644 --- a/src/smpi/internals/smpi_global.cpp +++ b/src/smpi/internals/smpi_global.cpp @@ -382,6 +382,10 @@ static void smpi_init_options(){ else xbt_die("Invalid value for smpi/privatization: '%s'", smpi_privatize_option.c_str()); + if (not SMPI_switch_data_segment) { + XBT_DEBUG("Running without smpi_main(); disable smpi/privatization."); + smpi_privatize_global_variables = SmpiPrivStrategies::None; + } #if defined(__FreeBSD__) if (smpi_privatize_global_variables == SmpiPrivStrategies::Mmap) { XBT_INFO("mmap privatization is broken on FreeBSD, switching to dlopen privatization instead.");