On Fri, Nov 29, 2013 at 9:20 PM, Jan Blechta <[email protected]> wrote:
> When configuring DOLFIN against CHOLMOD library from SuiteSparse,
> following error is issued in build/CMakeFiles/CMakeError.log
>
> /usr/bin/c++ -O2 -mfpmath=sse -fexpensive-optimizations
> -DCHOLMOD_TEST_RUNS -fopenmp
> CMakeFiles/cmTryCompileExec.dir/src.cxx.o -o cmTryCompileExec
> -rdynamic -Wl,-Bstatic -lcholmod -lamd -lcamd -lcolamd -lccolamd
> -lsuitesparseconfig -Wl,-Bdynamic -lparmetis -lmetis -Wl,-Bstatic
> -llapack -lblas -Wl,-Bdynamic
> -lgfortran
>
> /usr/local/pkg/suitesparse/4.2.1/gnu/lib/../lib/libsuitesparseconfig.a
> (SuiteSparse_config.o): In function `SuiteSparse_tic':
> SuiteSparse_config.c:(.text+0x131): undefined reference to
> `clock_gettime'
>
> Setting
>
> -DCHOLMOD_LIBRARIES:STRING='-lrt'
>
> or even
>
> -DCHOLMOD_LIBRARIES:STRING='$(shell pkg-config --libs suitesparse) -lrt'
>
> does not help. Where can be a problem?
You can try something like the attached patch.
Johannes
diff --git a/cmake/modules/FindCHOLMOD.cmake b/cmake/modules/FindCHOLMOD.cmake
index 94d8e43..655f9cb 100644
--- a/cmake/modules/FindCHOLMOD.cmake
+++ b/cmake/modules/FindCHOLMOD.cmake
@@ -89,6 +89,13 @@ find_library(SUITESPARSE_LIBRARY suitesparseconfig
DOC "The SUITESPARSECONFIG library"
)
+if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND NOT APPLE)
+ # Check for rt library
+ find_library(RT_LIBRARY rt
+ DOC "The RT library"
+ )
+endif()
+
# Collect libraries (order is important)
if (AMD_FOUND)
set(CHOLMOD_LIBRARIES ${CHOLMOD_LIBRARY} ${AMD_LIBRARIES})
@@ -105,6 +112,9 @@ endif()
if (SUITESPARSE_LIBRARY)
set(CHOLMOD_LIBRARIES ${CHOLMOD_LIBRARIES} ${SUITESPARSE_LIBRARY})
endif()
+if (RT_LIBRARY)
+ set(CHOLMOD_LIBRARIES ${CHOLMOD_LIBRARIES} ${RT_LIBRARY})
+endif()
if (PARMETIS_FOUND)
set(CHOLMOD_LIBRARIES ${CHOLMOD_LIBRARIES} ${PARMETIS_LIBRARIES})
_______________________________________________
fenics-support mailing list
[email protected]
http://fenicsproject.org/mailman/listinfo/fenics-support