Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Revert the sem_open 'fix'
[simgrid.git] / buildtools / Cmake / CompleteInFiles.cmake
index e3d4bd8..ba8db2b 100644 (file)
@@ -177,6 +177,8 @@ CHECK_FUNCTION_EXISTS(vasprintf HAVE_VASPRINTF)
 CHECK_FUNCTION_EXISTS(makecontext HAVE_MAKECONTEXT)
 CHECK_FUNCTION_EXISTS(mmap HAVE_MMAP)
 CHECK_FUNCTION_EXISTS(process_vm_readv HAVE_PROCESS_VM_READV)
+CHECK_FUNCTION_EXISTS(strdup SIMGRID_HAVE_STRDUP)
+CHECK_FUNCTION_EXISTS(_strdup SIMGRID_HAVE__STRDUP)
 
 #Check if __thread is defined
 execute_process(
@@ -632,20 +634,18 @@ if (NOT CMAKE_CROSSCOMPILING)
   try_run(RUN_makecontext_VAR COMPILE_makecontext_VAR
     ${CMAKE_BINARY_DIR}
     ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/test_prog/prog_stackgrowth.c
+    RUN_OUTPUT_VARIABLE stack
     )
-  if (RUN_makecontext_VAR)
-    file(READ "${CMAKE_BINARY_DIR}/conftestval" stack)
-    if(stack MATCHES "down")
-      set(PTH_STACKGROWTH "-1")
-    endif()
-    if(stack MATCHES "up")
-      set(PTH_STACKGROWTH "1")
-    endif()
-  endif()
 endif()
-if(NOT PTH_STACKGROWTH)
+if("${stack}" STREQUAL "down")
+  set(PTH_STACKGROWTH "-1")
+elseif("${stack}" STREQUAL "up")
+  set(PTH_STACKGROWTH "1")
+else()
   if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64")
     set(PTH_STACKGROWTH "-1")
+  elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "i686")
+    set(PTH_STACKGROWTH "-1")
   else()
     message(ERROR "Could not figure the stack direction.")
   endif()