X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ea10e88fd41a11386d9e3868d72ab8cb933a4292..43eba49ffd89c8df4eb8c2337ae7b5c32a8cc8a4:/src/smpi/internals/smpi_config.cpp diff --git a/src/smpi/internals/smpi_config.cpp b/src/smpi/internals/smpi_config.cpp index 55b6c77825..0f2b3a9eeb 100644 --- a/src/smpi/internals/smpi_config.cpp +++ b/src/smpi/internals/smpi_config.cpp @@ -2,6 +2,23 @@ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ + +#ifdef _GNU_SOURCE + #define DEFINED_GNUSOURCE 1 +#else + #define _GNU_SOURCE +#endif + +#include +//inspired by https://stackoverflow.com/a/70211227 +#if defined(__linux__) and not defined(__USE_GNU) + #define __MUSL__ +#endif + +#ifndef DEFINED_GNUSOURCE + #undef _GNU_SOURCE +#endif + #include "smpi_config.hpp" #include "include/xbt/config.hpp" #include "mc/mc.h" @@ -23,8 +40,9 @@ # ifndef MAC_OS_X_VERSION_10_12 # define MAC_OS_X_VERSION_10_12 101200 # endif + constexpr bool HAVE_WORKING_MMAP = (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12); -#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__sun) || defined(__HAIKU__) +#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__sun) || defined(__HAIKU__) || defined(__MUSL__) constexpr bool HAVE_WORKING_MMAP = false; #else constexpr bool HAVE_WORKING_MMAP = true; @@ -41,7 +59,7 @@ simgrid::config::Flag _smpi_cfg_host_speed_string{ [](const std::string& str) { _smpi_cfg_host_speed = xbt_parse_get_speed("smpi/host-speed", 1, str, "option smpi/host-speed"); xbt_assert(_smpi_cfg_host_speed > 0.0, "Invalid value (%s) for 'smpi/host-speed': it must be positive.", - _smpi_cfg_host_speed_string.get().c_str()); + str.c_str()); }}; simgrid::config::Flag _smpi_cfg_simulate_computation{ @@ -104,7 +122,7 @@ simgrid::config::Flag _smpi_cfg_comp_adjustment_file{ auto end = std::next(tok.begin()); std::string location = *it; boost::trim(location); - location2speedup.insert(std::pair(location, std::stod(*end))); + location2speedup.try_emplace(location, std::stod(*end)); } } }};