message(STATUS "System processor: x86_64 (${CMAKE_SYSTEM_PROCESSOR}, 64 bits)")
set(PROCESSOR_x86_64 1)
ENDIF()
- set(HAVE_RAWCTX 1)
+ if (MSVC)
+ message(STATUS "Disable fast raw contextes on Microsoft Visual.")
+ else()
+ set(HAVE_RAWCTX 1)
+ endif()
ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "^alpha")
message(STATUS "System processor: alpha")
set(MPI_ADDRESS_SIZE 8)
endif()
-message(STATUS "Cmake version ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}")
-
include(CheckFunctionExists)
include(CheckTypeSize)
include(CheckIncludeFile)
if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
set(CMAKE_REQUIRED_DEFINITIONS "-D_XOPEN_SOURCE=700 -D_DARWIN_C_SOURCE")
-endif()
-
-if(MINGW)
+elseif(MINGW)
add_definitions(-D__USE_MINGW_ANSI_STDIO=1)
set(CMAKE_REQUIRED_DEFINITIONS "-D__USE_MINGW_ANSI_STDIO=1")
+else()
+ set(CMAKE_REQUIRED_DEFINITIONS "-D_GNU_SOURCE")
endif()
-CHECK_INCLUDE_FILES("time.h;sys/time.h" TIME_WITH_SYS_TIME)
CHECK_INCLUDE_FILES("stdlib.h;stdarg.h;string.h;float.h" STDC_HEADERS)
-CHECK_INCLUDE_FILE("pthread.h" HAVE_PTHREAD_H)
CHECK_INCLUDE_FILE("valgrind/valgrind.h" HAVE_VALGRIND_VALGRIND_H)
CHECK_INCLUDE_FILE("socket.h" HAVE_SOCKET_H)
-CHECK_INCLUDE_FILE("sys/socket.h" HAVE_SYS_SOCKET_H)
CHECK_INCLUDE_FILE("stat.h" HAVE_STAT_H)
CHECK_INCLUDE_FILE("sys/stat.h" HAVE_SYS_STAT_H)
CHECK_INCLUDE_FILE("windows.h" HAVE_WINDOWS_H)
-CHECK_INCLUDE_FILE("winsock.h" HAVE_WINSOCK_H)
-CHECK_INCLUDE_FILE("winsock2.h" HAVE_WINSOCK2_H)
-CHECK_INCLUDE_FILE("windef.h" HAVE_WINDEF_H)
CHECK_INCLUDE_FILE("errno.h" HAVE_ERRNO_H)
CHECK_INCLUDE_FILE("unistd.h" HAVE_UNISTD_H)
CHECK_INCLUDE_FILE("execinfo.h" HAVE_EXECINFO_H)
CHECK_INCLUDE_FILE("sys/param.h" HAVE_SYS_PARAM_H)
CHECK_INCLUDE_FILE("sys/sysctl.h" HAVE_SYS_SYSCTL_H)
CHECK_INCLUDE_FILE("time.h" HAVE_TIME_H)
-CHECK_INCLUDE_FILE("inttypes.h" HAVE_INTTYPES_H)
-CHECK_INCLUDE_FILE("memory.h" HAVE_MEMORY_H)
-CHECK_INCLUDE_FILE("stdlib.h" HAVE_STDLIB_H)
-CHECK_INCLUDE_FILE("strings.h" HAVE_STRINGS_H)
CHECK_INCLUDE_FILE("string.h" HAVE_STRING_H)
CHECK_INCLUDE_FILE("ucontext.h" HAVE_UCONTEXT_H)
CHECK_INCLUDE_FILE("stdio.h" HAVE_STDIO_H)
CHECK_SYMBOL_EXISTS(asprintf stdio.h HAVE_ASPRINTF)
CHECK_SYMBOL_EXISTS(vasprintf stdio.h HAVE_VASPRINTF)
+if(MINGW)
+ # The detection of asprintf fails on MinGW, assumingly because it's
+ # defined as an inline function in stdio.h instead of a regular
+ # function. So force the result to be 1 despite of the test.
+ set(HAVE_ASPRINTF 1)
+ set(HAVE_VASPRINTF 1)
+endif()
+
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_FUNCTION_EXISTS(mmap HAVE_MMAP)
#Check if __thread is defined
execute_process(
endif()
# Our usage of mmap is Linux-specific (flag MAP_ANONYMOUS), but kFreeBSD uses a GNU libc
-IF(NOT "${CMAKE_SYSTEM}" MATCHES "Linux" AND NOT "${CMAKE_SYSTEM}" MATCHES "kFreeBSD" AND NOT "${CMAKE_SYSTEM}" MATCHES "GNU" AND NOT "${CMAKE_SYSTEM}" MATCHES "Darwin")
+IF(HAVE_MMAP AND
+ NOT "${CMAKE_SYSTEM}" MATCHES "Linux" AND
+ NOT "${CMAKE_SYSTEM}" MATCHES "kFreeBSD" AND
+ NOT "${CMAKE_SYSTEM}" MATCHES "GNU" AND
+ NOT "${CMAKE_SYSTEM}" MATCHES "Darwin")
SET(HAVE_MMAP 0)
message(STATUS "Warning: MMAP is thought as non functional on this architecture (${CMAKE_SYSTEM})")
ENDIF()
endif()
-if(WIN32) #THOSE FILES ARE FUNCTIONS ARE NOT DETECTED BUT THEY SHOULD...
+if(WIN32) # Those files are not detected despite being present
set(HAVE_UCONTEXT_H 1)
set(HAVE_MAKECONTEXT 1)
set(HAVE_SNPRINTF 1)
endif()
endif()
-#--------------------------------------------------------------------------------------------------
-### Check for some architecture dependent values
-CHECK_TYPE_SIZE(int SIZEOF_INT)
-CHECK_TYPE_SIZE(void* SIZEOF_VOIDP)
-
#--------------------------------------------------------------------------------------------------
### Check for GNU dynamic linker
CHECK_INCLUDE_FILE("dlfcn.h" HAVE_DLFCN_H)
#--------------------------------------------------------------------------------------------------
### Initialize of CONTEXT THREADS
-if(HAVE_PTHREAD)
- set(pthread 1)
-elseif(pthread)
- set(pthread 0)
-endif()
-
if(HAVE_PTHREAD)
### Test that we have a way to create semaphores