From: Gabriel Corona Date: Mon, 23 Dec 2013 13:36:07 +0000 (+0100) Subject: [mc] Link against libdw X-Git-Tag: v3_11~199^2~2^2~35^2~16 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/d61025277c1c9cb5756c47f263576378d405310f [mc] Link against libdw --- diff --git a/buildtools/Cmake/CompleteInFiles.cmake b/buildtools/Cmake/CompleteInFiles.cmake index 16aff5cbd4..16f8dbaa0c 100644 --- a/buildtools/Cmake/CompleteInFiles.cmake +++ b/buildtools/Cmake/CompleteInFiles.cmake @@ -212,6 +212,7 @@ if(enable_model-checking AND HAVE_MMAP) SET(HAVE_MC 1) SET(MMALLOC_WANT_OVERRIDE_LEGACY 1) include(FindLibunwind) + include(FindLibdw) else() SET(HAVE_MC 0) SET(MMALLOC_WANT_OVERRIDE_LEGACY 0) diff --git a/buildtools/Cmake/DefinePackages.cmake b/buildtools/Cmake/DefinePackages.cmake index c8652bdef0..193de8255d 100644 --- a/buildtools/Cmake/DefinePackages.cmake +++ b/buildtools/Cmake/DefinePackages.cmake @@ -974,6 +974,7 @@ set(CMAKE_SOURCE_FILES buildtools/Cmake/Modules/FindGTnets.cmake buildtools/Cmake/Modules/FindGraphviz.cmake buildtools/Cmake/Modules/FindLibunwind.cmake + buildtools/Cmake/Modules/FindLibdw.cmake buildtools/Cmake/Modules/FindLua51Simgrid.cmake buildtools/Cmake/Modules/FindNS3.cmake buildtools/Cmake/Modules/FindRngStream.cmake diff --git a/buildtools/Cmake/MakeLib.cmake b/buildtools/Cmake/MakeLib.cmake index 93ace1d424..2f81c23c40 100644 --- a/buildtools/Cmake/MakeLib.cmake +++ b/buildtools/Cmake/MakeLib.cmake @@ -91,6 +91,9 @@ if(HAVE_MC) # (that includes FindLibunwind.cmake), so simply load it now. SET(SIMGRID_DEP "${SIMGRID_DEP} -lunwind") + + # 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) diff --git a/buildtools/Cmake/Modules/FindLibdw.cmake b/buildtools/Cmake/Modules/FindLibdw.cmake new file mode 100644 index 0000000000..9e07a38ebb --- /dev/null +++ b/buildtools/Cmake/Modules/FindLibdw.cmake @@ -0,0 +1,55 @@ +find_library(PATH_LIBDW_LIB + NAMES dw + HINTS + $ENV{SIMGRID_LIBDW_LIBRARY_PATH} + $ENV{LD_LIBRARY_PATH} + $ENV{LIBDW_LIBRARY_PATH} + PATH_SUFFIXES lib/ GnuWin32/lib + PATHS + /opt + /opt/local + /opt/csw + /sw + /usr) + + +find_path(PATH_LIBDW_H "elfutils/libdw.h" + HINTS + $ENV{SIMGRID_LIBDW_LIBRARY_PATH} + $ENV{LD_LIBRARY_PATH} + $ENV{LIBDW_LIBRARY_PATH} + PATH_SUFFIXES include/ GnuWin32/include + PATHS + /opt + /opt/local + /opt/csw + /sw + /usr) + +message(STATUS "Looking for libdw.h") +if(PATH_LIBDW_H) + message(STATUS "Looking for libdw.h - found") +else() + message(STATUS "Looking for libdw.h - not found") +endif() + +message(STATUS "Looking for libdw") +if(PATH_LIBDW_LIB) + message(STATUS "Looking for libdw - found") +else() + message(STATUS "Looking for libdw - not found") +endif() + +if(PATH_LIBDW_LIB AND PATH_LIBDW_H) + string(REGEX REPLACE "/libdw.*[.]${LIB_EXE}$" "" PATH_LIBDW_LIB "${PATH_LIBDW_LIB}") + string(REGEX REPLACE "/libdw.h" "" PATH_LIBDW_H "${PATH_LIBDW_H}") + + include_directories(${PATH_LIBDW_H}) + link_directories(${PATH_LIBDW_LIB}) + +else() + message(FATAL_ERROR "Please either install the libdw-dev package (or equivalent) or turn off the model-checking option of SimGrid.") +endif() + +mark_as_advanced(PATH_LIBDW_H) +mark_as_advanced(PATH_LIBDW_LIB) diff --git a/buildtools/Cmake/Modules/FindLibunwind.cmake b/buildtools/Cmake/Modules/FindLibunwind.cmake index 56de1f79a0..03bbed91de 100644 --- a/buildtools/Cmake/Modules/FindLibunwind.cmake +++ b/buildtools/Cmake/Modules/FindLibunwind.cmake @@ -66,5 +66,5 @@ else() message(FATAL_ERROR "Please either install the libunwind7-dev package (or equivalent) or turn off the model-checking option of SimGrid.") endif() -mark_as_advanced(PATH_LIBUNWIND_H) -mark_as_advanced(PATH_LIBUNWIND_LIB) \ No newline at end of file +mark_as_advanced(PATH_LIBDW_H) +mark_as_advanced(PATH_LIBDW_LIB)