From 43eba49ffd89c8df4eb8c2337ae7b5c32a8cc8a4 Mon Sep 17 00:00:00 2001 From: Augustin Degomme Date: Mon, 25 Jul 2022 20:57:21 +0200 Subject: [PATCH] Disable mmap privatization if MUSL is detected, as it segfaults and we don't really care. Hack a way of detecting musl, which is not really ideal but should work. --- src/smpi/internals/smpi_config.cpp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/smpi/internals/smpi_config.cpp b/src/smpi/internals/smpi_config.cpp index acd32c6b97..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; -- 2.20.1