From: Martin Quinson Date: Mon, 31 Oct 2016 22:05:51 +0000 (+0100) Subject: test for libunwind even if not building MC X-Git-Tag: v3_14~272 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/bb52ef5fabdd283019a32fb5d812b5e40127bea5?hp=d8471c785b18ca26e34b9f7305d92560964181af test for libunwind even if not building MC --- diff --git a/CMakeLists.txt b/CMakeLists.txt index daeb9d899e..3973529d4c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -172,7 +172,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) @@ -275,18 +276,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) @@ -360,6 +349,10 @@ 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) @@ -374,16 +367,29 @@ else() SET(HAVE_MALLOCATOR 0) endif() -if(enable_model-checking AND HAVE_MMALLOC) - SET(HAVE_MC 1) - include(FindLibunwind) - include(FindLibdw) +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(STATUS "Warning: support for model-checking has been disabled because you are missing either mmap or __thread.") + message(FATAL_ERROR "Please either install the libunwind7-dev package (or equivalent) or turn off the model-checking option of SimGrid.") endif() - SET(HAVE_MC 0) - SET(HAVE_MMALLOC 0) +endif() + +if(enable_model-checking) + SET(HAVE_MC 1) + + include(FindLibdw) + SET(SIMGRID_DEP "${SIMGRID_DEP} -ldw") +else() + SET(HAVE_MC 0) endif() if (enable_model-checking AND enable_ns3) diff --git a/tools/cmake/MakeLib.cmake b/tools/cmake/MakeLib.cmake index 29c3b563fc..95ce4604a1 100644 --- a/tools/cmake/MakeLib.cmake +++ b/tools/cmake/MakeLib.cmake @@ -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() @@ -70,23 +69,6 @@ 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") endif() diff --git a/tools/cmake/Modules/FindLibunwind.cmake b/tools/cmake/Modules/FindLibunwind.cmake index 70f3ecf878..67bcde67ae 100644 --- a/tools/cmake/Modules/FindLibunwind.cmake +++ b/tools/cmake/Modules/FindLibunwind.cmake @@ -64,8 +64,9 @@ if(PATH_LIBUNWIND_LIB AND PATH_LIBUNWIND_H) include_directories(${PATH_LIBUNWIND_H}) link_directories(${PATH_LIBUNWIND_LIB}) + SET(HAVE_LIBUNWIND 1) else() - message(FATAL_ERROR "Please either install the libunwind7-dev package (or equivalent) or turn off the model-checking option of SimGrid.") + SET(HAVE_LIBUNWIND 0) endif() mark_as_advanced(PATH_LIBDW_H) diff --git a/tools/cmake/src/internal_config.h.in b/tools/cmake/src/internal_config.h.in index 1ad92b1540..e55e2aacf7 100644 --- a/tools/cmake/src/internal_config.h.in +++ b/tools/cmake/src/internal_config.h.in @@ -70,3 +70,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) */ \ No newline at end of file