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, 31 Oct 2016 22:08:42 +0000 (23:08 +0100)
committerMartin Quinson <martin.quinson@loria.fr>
Mon, 31 Oct 2016 22:08:42 +0000 (23:08 +0100)
1  2 
CMakeLists.txt
tools/cmake/MakeLib.cmake
tools/cmake/src/internal_config.h.in

diff --combined CMakeLists.txt
@@@ -119,6 -119,11 +119,11 @@@ endif(
  execute_process(COMMAND   ${CMAKE_LINKER}   -version    OUTPUT_VARIABLE LINKER_VERSION)
  string(REGEX MATCH "[0-9].[0-9]*" LINKER_VERSION "${LINKER_VERSION}")
  
+ ### Set the library providing dlopen
+ if("${CMAKE_SYSTEM}" MATCHES "Linux")
+   find_library(dl DL_LIBRARY)
+ endif("${CMAKE_SYSTEM}" MATCHES "Linux")
  ### Find programs and paths
  FIND_PROGRAM(GCOV_PATH gcov)
  include(FindPerl)
@@@ -172,8 -177,7 +177,8 @@@ endif(
  
  include_directories(${INCLUDES})
  
 -
 +# library dependency cannot start with a space (CMP0004), so initialize it with something that is never desactivated.
 +set(SIMGRID_DEP "-lm") 
  
  ### Determine the assembly flavor that we need today
  set(HAVE_RAW_CONTEXTS 0)
@@@ -276,6 -280,18 +281,6 @@@ else(
    endif()
  endif()
  
 -# Try again to see if we have libboost-graph
 -#find_package(Boost 1.42 COMPONENTS graph)
 -#set(Boost_FOUND 1) # We don't care of whether this component is missing
 -#
 -#if(Boost_FOUND AND Boost_GRAPH_FOUND)
 -#  set(HAVE_BOOST_GRAPH 1)
 -#else()
 -#  message ("   boost        : found.")
 -#  message ("   boost-graph  : missing. Install libboost-graph-dev for this optional feature.")
 -#  set(HAVE_BOOST_GRAPH 0)
 -#endif()
 -
  # Checks for header libraries functions.
  CHECK_LIBRARY_EXISTS(rt      clock_gettime           "" HAVE_POSIX_GETTIME)
  
@@@ -314,6 -330,7 +319,7 @@@ CHECK_FUNCTION_EXISTS(sysconf HAVE_SYSC
  CHECK_FUNCTION_EXISTS(popen HAVE_POPEN)
  CHECK_FUNCTION_EXISTS(process_vm_readv HAVE_PROCESS_VM_READV)
  CHECK_FUNCTION_EXISTS(mmap HAVE_MMAP)
+ CHECK_FUNCTION_EXISTS(mremap HAVE_MREMAP)
  
  CHECK_SYMBOL_EXISTS(vasprintf stdio.h HAVE_VASPRINTF)
  if(MINGW)
@@@ -335,24 -352,10 +341,14 @@@ 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 
-    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()
  if(HAVE_MMAP AND HAVE_THREAD_LOCAL_STORAGE)
    SET(HAVE_MMALLOC 1)
  else()
    SET(HAVE_MMALLOC 0)
 +  if(enable_model-checking)
 +    message(STATUS "Warning: support for model-checking has been disabled because you are missing either mmap or __thread.")
 +  endif()
 +  SET(enable_model-checking 0)
  endif()
  
  if(enable_jedule)
@@@ -367,29 -370,21 +363,35 @@@ else(
    SET(HAVE_MALLOCATOR 0)
  endif()
  
 -if(enable_model-checking AND HAVE_MMALLOC)
 +include(FindLibunwind)
 +if(HAVE_LIBUNWIND)
 +  SET(SIMGRID_DEP "${SIMGRID_DEP} -lunwind -lunwind-ptrace")
 +  # This supposes that the host machine is either an AMD or a X86.
 +  # This is deeply wrong, and should be fixed by manually loading -lunwind-PLAT (FIXME)
 +  if(PROCESSOR_x86_64)
 +    SET(SIMGRID_DEP "${SIMGRID_DEP} -lunwind-x86_64")
 +  else()
 +    SET(SIMGRID_DEP "${SIMGRID_DEP} -lunwind-x86")
 +  endif()
 +else()
 +  if(enable_model-checking)
 +    message(FATAL_ERROR "Please either install the libunwind7-dev package (or equivalent) or turn off the model-checking option of SimGrid.")
 +  endif()
 +endif()
 +
+ if(enable_model-checking AND NOT "${CMAKE_SYSTEM}" MATCHES "Linux")
+   message(WARNING "Support for model-checking has not been enabled on ${CMAKE_SYSTEM}: disabling it")
+   set(enable_model-checking FALSE)
+   set(HAVE_MC 0)
+ endif()
++
 +if(enable_model-checking)
    SET(HAVE_MC 1)
 -  include(FindLibunwind)
 -  include(FindLibdw)
 +  
 +  include(FindLibdw)  
 +  SET(SIMGRID_DEP "${SIMGRID_DEP} -ldw")
  else()
 -  if(enable_model-checking)
 -    message(STATUS "Warning: support for model-checking has been disabled because you are missing either mmap or __thread.")
 -  endif()
 -  SET(HAVE_MC 0)
 -  SET(HAVE_MMALLOC 0)
 +  SET(HAVE_MC 0)  
  endif()
  
  if (enable_model-checking AND enable_ns3)
@@@ -398,12 -393,9 +400,9 @@@ endif(
  
  if(enable_smpi)
    SET(HAVE_SMPI 1)
-   if("${CMAKE_SYSTEM}" MATCHES "Linux")
+   if("${CMAKE_SYSTEM}" MATCHES "Linux|FreeBSD")
      SET(USE_LIBUTIL 0)
      SET(HAVE_PRIVATIZATION 1)
-   elseif("${CMAKE_SYSTEM}" MATCHES "^FreeBSD")
-     SET(USE_LIBUTIL 0)
-     SET(HAVE_PRIVATIZATION 0)
    else()
      message (STATUS "Warning:  no support for SMPI automatic privatization on this platform")
      SET(HAVE_PRIVATIZATION 0)
@@@ -416,7 -408,7 +415,7 @@@ endif(
  ### Check for GNU dynamic linker
  CHECK_INCLUDE_FILE("dlfcn.h" HAVE_DLFCN_H)
  if (HAVE_DLFCN_H)
-   execute_process(COMMAND ${CMAKE_C_COMPILER} ${CMAKE_HOME_DIRECTORY}/tools/cmake/test_prog/prog_gnu_dynlinker.c -ldl -o test_gnu_ld
+   execute_process(COMMAND ${CMAKE_C_COMPILER} ${CMAKE_HOME_DIRECTORY}/tools/cmake/test_prog/prog_gnu_dynlinker.c ${DL_LIBRARY} -o test_gnu_ld
                    WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
                    OUTPUT_VARIABLE HAVE_GNU_LD_compil
    )
@@@ -20,6 -20,7 +20,6 @@@ endif(
  
  # Compute the dependencies of SimGrid
  #####################################
 -set(SIMGRID_DEP "-lm")
  if (HAVE_BOOST_CONTEXTS)
    set(SIMGRID_DEP "${SIMGRID_DEP} ${Boost_CONTEXT_LIBRARY}")
  endif()
@@@ -52,7 -53,7 +52,7 @@@ if(HAVE_LUA
      COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/examples/simdag/
      COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_BINARY_DIR}/lib/libsimgrid.${LIB_EXE} ${CMAKE_BINARY_DIR}/examples/simdag/simgrid.${LIB_EXE} #for test
      )
-   SET(SIMGRID_DEP "${SIMGRID_DEP} ${LUA_LIBRARY} -ldl")
+   SET(SIMGRID_DEP "${SIMGRID_DEP} ${LUA_LIBRARY} ${DL_LIBRARY}")
  endif()
  
  if(HAVE_PAPI)
@@@ -69,8 -70,25 +69,8 @@@ if(HAVE_GRAPHVIZ
    endif()
  endif()
  
 -if(HAVE_MC)
 -  # The availability of libunwind was checked in CompleteInFiles.cmake
 -  #   (that includes FindLibunwind.cmake), so simply load it now.
 -
 -  SET(SIMGRID_DEP "${SIMGRID_DEP} -lunwind -lunwind-ptrace")
 -
 -  # Same for libdw
 -  SET(SIMGRID_DEP "${SIMGRID_DEP} -ldw")
 -  # This supposes that the host machine is either an AMD or a X86.
 -  # This is deeply wrong, and should be fixed by manually loading -lunwind-PLAT (FIXME)
 -  if(PROCESSOR_x86_64)
 -    SET(SIMGRID_DEP "${SIMGRID_DEP} -lunwind-x86_64")
 -  else()
 -    SET(SIMGRID_DEP "${SIMGRID_DEP} -lunwind-x86")
 -  endif()
 -endif()
 -
  if(HAVE_MC AND HAVE_GNU_LD)
-   SET(SIMGRID_DEP "${SIMGRID_DEP} -ldl")
+   SET(SIMGRID_DEP "${SIMGRID_DEP} ${DL_LIBRARY}")
  endif()
  
  if(HAVE_NS3)
@@@ -81,6 -99,10 +81,10 @@@ if(HAVE_POSIX_GETTIME
    SET(SIMGRID_DEP "${SIMGRID_DEP} -lrt")
  endif()
  
+ if("${CMAKE_SYSTEM}" MATCHES "FreeBSD")
+   set(SIMGRID_DEP "${SIMGRID_DEP} -lprocstat")
+ endif()
  # Compute the dependencies of SMPI
  ##################################
  if(enable_smpi AND APPLE)
@@@ -62,6 -62,7 +62,7 @@@
  /* Other function checks */
  #define HAVE_BACKTRACE @HAVE_BACKTRACE@ /* Function backtrace */
  #define HAVE_MMAP      @HAVE_MMAP@ /* Function mmap */
+ #define HAVE_MREMAP    @HAVE_MREMAP@ /* Function mremap */
  #define HAVE_SEM_INIT  @HAVE_SEM_INIT@ /* Function sem_init (part of XPG6 standard only) */
  #define HAVE_POPEN     @HAVE_POPEN@ /* Function popen */
  #define HAVE_SYSCONF   @HAVE_SYSCONF@ /* Function sysconf */
@@@ -70,4 -71,3 +71,4 @@@
  /* Other checks */
  #cmakedefine ADDR2LINE       "@ADDR2LINE@" /* Path to the addr2line tool */
  #define HAVE_GRAPHVIZ   @HAVE_GRAPHVIZ@ /* The graphviz library */
 +#define HAVE_LIBUNWIND  @HAVE_LIBUNWIND@ /* The lib unwind library (for MC and backtrace display) */