Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
add haiku support. Because why not.
authorAugustin Degomme <adegomme@gmail.com>
Mon, 3 Jun 2019 08:46:33 +0000 (10:46 +0200)
committerAugustin Degomme <adegomme@gmail.com>
Fri, 21 Jun 2019 11:12:46 +0000 (13:12 +0200)
CMakeLists.txt
src/smpi/internals/smpi_global.cpp
teshsuite/smpi/mpich3-test/util/mtest.c

index ea2368a..cba00c6 100644 (file)
@@ -410,7 +410,7 @@ endif()
 
 if(enable_smpi)
   SET(HAVE_SMPI 1)
 
 if(enable_smpi)
   SET(HAVE_SMPI 1)
-  if("${CMAKE_SYSTEM}" MATCHES "Darwin|FreeBSD|Linux|SunOS")
+  if(NOT WIN32)
     SET(HAVE_PRIVATIZATION 1)
   else()
     message (STATUS "Warning:  no support for SMPI automatic privatization on this platform")
     SET(HAVE_PRIVATIZATION 1)
   else()
     message (STATUS "Warning:  no support for SMPI automatic privatization on this platform")
index 8710495..f3f49b3 100644 (file)
@@ -23,7 +23,7 @@
 #include <fstream>
 #include <sys/stat.h>
 
 #include <fstream>
 #include <sys/stat.h>
 
-#if not defined(__APPLE__)
+#if not defined(__APPLE__) && not defined(__HAIKU__)
 #include <link.h>
 #endif
 
 #include <link.h>
 #endif
 
@@ -33,7 +33,7 @@
 #   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);
 #   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)
+#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__sun) || defined(__HAIKU__)
 constexpr bool HAVE_WORKING_MMAP = false;
 #else
 constexpr bool HAVE_WORKING_MMAP = true;
 constexpr bool HAVE_WORKING_MMAP = false;
 #else
 constexpr bool HAVE_WORKING_MMAP = true;
@@ -529,7 +529,7 @@ static void smpi_copy_file(const std::string& src, const std::string& target, of
   close(fdout);
 }
 
   close(fdout);
 }
 
-#if not defined(__APPLE__)
+#if not defined(__APPLE__) && not defined(__HAIKU__)
 static int visit_libs(struct dl_phdr_info* info, size_t, void* data)
 {
   char* libname = (char*)(data);
 static int visit_libs(struct dl_phdr_info* info, size_t, void* data)
 {
   char* libname = (char*)(data);
@@ -562,7 +562,7 @@ static void smpi_init_privatization_dlopen(const std::string& executable)
       // get library name from path
       char fullpath[512] = {'\0'};
       strncpy(fullpath, libname.c_str(), 511);
       // get library name from path
       char fullpath[512] = {'\0'};
       strncpy(fullpath, libname.c_str(), 511);
-#if not defined(__APPLE__)
+#if not defined(__APPLE__) && not defined(__HAIKU__)
       int ret = dl_iterate_phdr(visit_libs, fullpath);
       if (ret == 0)
         xbt_die("Can't find a linked %s - check the setting you gave to smpi/privatize-libs", fullpath);
       int ret = dl_iterate_phdr(visit_libs, fullpath);
       if (ret == 0)
         xbt_die("Can't find a linked %s - check the setting you gave to smpi/privatize-libs", fullpath);
index 4f20aab..cb24b32 100644 (file)
@@ -1111,7 +1111,7 @@ void MTestError(const char *msg)
 /* ------------------------------------------------------------------------ */
 static void MTestResourceSummary(FILE * fp)
 {
 /* ------------------------------------------------------------------------ */
 static void MTestResourceSummary(FILE * fp)
 {
-#ifdef HAVE_GETRUSAGE
+#if defined(HAVE_GETRUSAGE) && !defined(__HAIKU__)
     struct rusage ru;
     static int pfThreshold = -2;
     int doOutput = 1;
     struct rusage ru;
     static int pfThreshold = -2;
     int doOutput = 1;