From 53000ffa8ea6d39f22a7f62717f1ea00471a81d8 Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Sat, 31 Mar 2018 17:16:08 +0200 Subject: [PATCH] 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. --- src/smpi/internals/smpi_global.cpp | 4 ++++ 1 file changed, 4 insertions(+) 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."); -- 2.20.1