X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/667f59ed88de481336b4c86ada687ff55751f8bd..162b7f2ae7f56c611a7d8f951477b3a23a53a2b4:/src/smpi/internals/smpi_global.cpp diff --git a/src/smpi/internals/smpi_global.cpp b/src/smpi/internals/smpi_global.cpp index 7392e9e536..7544bbd081 100644 --- a/src/smpi/internals/smpi_global.cpp +++ b/src/smpi/internals/smpi_global.cpp @@ -15,10 +15,23 @@ #include /* DBL_MAX */ #include #include +#include + #if not defined(__APPLE__) #include #endif -#include + +#if defined(__APPLE__) +# include +# ifndef MAC_OS_X_VERSION_10_12 +# define MAC_OS_X_VERSION_10_12 101200 +# endif +# define HAVE_WORKING_MMAP (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12) +#elif defined(__FreeBSD__) +# define HAVE_WORKING_MMAP 0 +#else +# define HAVE_WORKING_MMAP 1 +#endif #if HAVE_SENDFILE #include @@ -376,7 +389,7 @@ static void smpi_init_options(){ XBT_DEBUG("Running without smpi_main(); disable smpi/privatization."); smpi_privatize_global_variables = SmpiPrivStrategies::NONE; } -#if defined(__FreeBSD__) +#if HAVE_WORKING_MMAP if (smpi_privatize_global_variables == SmpiPrivStrategies::MMAP) { XBT_INFO("mmap privatization is broken on FreeBSD, switching to dlopen privatization instead."); smpi_privatize_global_variables = SmpiPrivStrategies::DLOPEN; @@ -618,7 +631,7 @@ int smpi_main(const char* executable, int argc, char* argv[]) TRACE_global_init(); SIMIX_global_init(&argc, argv); - MSG_init(&argc, argv); + MSG_init(&argc, argv); // FIXME Remove this MSG call. Once it's removed, we can remove the msg header include as well SMPI_switch_data_segment = &smpi_switch_data_segment;