X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/3893493151bcdbed55ef359cdfea4563ee8cddb8..c6737e9ea8077ef7f985e03a4db6cf6353ed32f6:/CMakeLists.txt?ds=sidebyside diff --git a/CMakeLists.txt b/CMakeLists.txt index 7a211133eb..b0a6d3c96c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -307,6 +307,19 @@ if(MINGW) set(HAVE_VASPRINTF 1) endif() + +#Check if __thread is defined +execute_process( + COMMAND "${CMAKE_C_COMPILER} ${CMAKE_HOME_DIRECTORY}/tools/cmake/test_prog/prog_thread_storage.c -o testprog" + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + RESULT_VARIABLE HAVE_thread_storage_run) +file(REMOVE testprog) +if(HAVE_thread_storage_run) + set(HAVE_THREAD_LOCAL_STORAGE 1) +else() + set(HAVE_THREAD_LOCAL_STORAGE 0) +endif() + # Our usage of mmap is Linux-specific (flag MAP_ANONYMOUS), but kFreeBSD uses a GNU libc IF(HAVE_MMAP AND NOT "${CMAKE_SYSTEM}" MATCHES "Linux" AND @@ -317,7 +330,7 @@ IF(HAVE_MMAP AND message(STATUS "Warning: MMAP is thought as non functional on this architecture (${CMAKE_SYSTEM})") ENDIF() -if(HAVE_MMAP) +if(HAVE_MMAP AND HAVE_THREAD_LOCAL_STORAGE) SET(HAVE_MMALLOC 1) else() SET(HAVE_MMALLOC 0)