Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid
authorMartin Quinson <martin.quinson@loria.fr>
Mon, 7 Mar 2016 09:49:11 +0000 (10:49 +0100)
committerMartin Quinson <martin.quinson@loria.fr>
Mon, 7 Mar 2016 09:49:11 +0000 (10:49 +0100)
CMakeLists.txt
src/simix/smx_context.cpp

index 14db0b4..0217261 100644 (file)
@@ -516,11 +516,10 @@ endif()
 
 if(NOT HAVE_UCONTEXT_H)
   message("-- No ucontext factory: <ucontext.h> not found.")
+elseif(APPLE)
+  message("-- No ucontext factory: Apple don't want us to use them.")
+  set(HAVE_UCONTEXT_H 0)
 else()
-  # This is needed for ucontext on MacOS X:
-  if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
-    add_definitions(-D_XOPEN_SOURCE=700 -D_DARWIN_C_SOURCE)
-  endif()
   try_compile(compile_makecontext ${CMAKE_BINARY_DIR} ${CMAKE_HOME_DIRECTORY}/tools/cmake/test_prog/prog_makecontext.c
     OUTPUT_VARIABLE compile_makecontext_output)
   
index a75367f..9e2dab9 100644 (file)
@@ -126,11 +126,10 @@ void *SIMIX_context_stack_new(void)
 
   if (smx_context_guard_size > 0 && !MC_is_active()) {
 
-#if defined(_WIN32) || (PTH_STACKGROWTH != -1)
+#if !defined(PTH_STACKGROWTH) || (PTH_STACKGROWTH != -1)
     static int warned_once = 0;
     if (!warned_once) {
-      XBT_WARN("Stack overflow protection is known to be broken on your system.  Either you're on Windows or PTH_STACKGROWTH != -1 (current value is %d).",
-               PTH_STACKGROWTH);
+      XBT_WARN("Stack overflow protection is known to be broken on your system.  Either stack grows upwards, or it was not even tested properly.");
       warned_once = 1;
     }
 #endif
@@ -226,12 +225,9 @@ void SIMIX_context_set_nthreads(int nb_threads) {
      nb_threads = xbt_os_get_numcores();
      XBT_INFO("Auto-setting contexts/nthreads to %d",nb_threads);
   }   
-  
-  if (nb_threads > 1) {
 #ifndef HAVE_THREAD_CONTEXTS
-    THROWF(arg_error, 0, "The thread factory cannot be run in parallel");
+  xbt_assert(nb_threads == 1, "Parallel runs are impossible when the pthreads are missing.");
 #endif
-  }
   smx_parallel_contexts = nb_threads;
 }