mirror of https://github.com/QMCPACK/qmcpack.git
Fix the library link order in CMake configuration.
Issues are: 1) Wrong order of libaries. After in this fix, the order is qmcapp.cpp.o, qmcpack owned libraries, lapack/blas, FFT, XML2, HDF5, LIBZ, LIBM. 2) Performance issue on BGQ due to the inclusion of libmass after libm. This might also affect other platforms. 3) Duplicated occurance of libraries in the final linking line. git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@6919 e5b18d87-469d-4833-9cc0-8cdfa06e9491
This commit is contained in:
parent
0a87dbc1d2
commit
b255dca1b5
|
@ -423,7 +423,7 @@ ELSE(CMAKE_TOOLCHAIN_FILE)
|
|||
IF(LAPACK_FOUND)
|
||||
MESSAGE(STATUS "LAPACK libraries: ${LAPACK_LIBRARIES}")
|
||||
MESSAGE(STATUS "LAPACK linker flags: ${LAPACK_LINKER_FLAGS}")
|
||||
link_libraries(${LAPACK_LIBRARIES} ${LAPACK_LINKER_FLAGS})
|
||||
SET(LAPACK_LIBRARY ${LAPACK_LIBRARIES} ${LAPACK_LINKER_FLAGS})
|
||||
ENDIF()
|
||||
|
||||
|
||||
|
@ -462,8 +462,29 @@ INCLUDE(${CMAKE_ROOT}/Modules/FindThreads.cmake)
|
|||
# use customized cmake file for boost so that we can deal with multiple
|
||||
# installataions
|
||||
# list of libraries to be linked with the main applications using I/O
|
||||
SET(QMC_UTIL_LIBS )
|
||||
|
||||
SET(QMC_UTIL_LIBS ${LAPACK_LIBRARY} ${BLAS_LIBRARY})
|
||||
|
||||
SET( FFTW_FOUND 0 )
|
||||
IF ( HAVE_MKL )
|
||||
IF ( HAVE_MKL_FFTW3 )
|
||||
SET( FFTW_FOUND 1 )
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
IF ( NOT FFTW_FOUND )
|
||||
find_package(FFTW)
|
||||
ENDIF()
|
||||
IF(FFTW_FOUND)
|
||||
SET(HAVE_LIBFFTW 1)
|
||||
INCLUDE_DIRECTORIES(${FFTW_INCLUDE_DIR})
|
||||
SET(QMC_UTIL_LIBS ${QMC_UTIL_LIBS} ${FFTW_LIBRARIES})
|
||||
MESSAGE(STATUS "Found FFTW")
|
||||
ELSE(FFTW_FOUND)
|
||||
MESSAGE(STATUS "Disabling FFTW")
|
||||
ENDIF(FFTW_FOUND)
|
||||
|
||||
SET(QMC_UTIL_LIBS ${QMC_UTIL_LIBS} ${FORTRAN_LIBRARIES})
|
||||
|
||||
find_package(ZLIB)
|
||||
find_package(LibXml2)
|
||||
|
||||
|
@ -590,37 +611,10 @@ ENDIF(QMC_CUDA)
|
|||
# endif(ENABLE_OPENMP)
|
||||
#ENDIF(FOUND_TAU)
|
||||
|
||||
###############################################################
|
||||
# for specific linker in the case of profiling like hpctoolkit.
|
||||
###############################################################
|
||||
if(CMAKE_CXX_LINKER)
|
||||
set(CMAKE_CXX_LINK_EXECUTABLE
|
||||
"${CMAKE_CXX_LINKER} <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
|
||||
MESSAGE(STATUS "Linker is specified as '${CMAKE_CXX_LINKER}' instead of '${CMAKE_CXX_COMPILER}'")
|
||||
endif()
|
||||
|
||||
######################################################
|
||||
# Add optional macros
|
||||
######################################################
|
||||
|
||||
SET( FFTW_FOUND 0 )
|
||||
IF ( HAVE_MKL )
|
||||
IF ( HAVE_MKL_FFTW3 )
|
||||
SET( FFTW_FOUND 1 )
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
IF ( NOT FFTW_FOUND )
|
||||
find_package(FFTW)
|
||||
ENDIF()
|
||||
IF(FFTW_FOUND)
|
||||
SET(HAVE_LIBFFTW 1)
|
||||
INCLUDE_DIRECTORIES(${FFTW_INCLUDE_DIR})
|
||||
SET(QMC_UTIL_LIBS ${QMC_UTIL_LIBS} ${FFTW_LIBRARIES})
|
||||
MESSAGE(STATUS "Found FFTW")
|
||||
ELSE(FFTW_FOUND)
|
||||
MESSAGE(STATUS "Disabling FFTW")
|
||||
ENDIF(FFTW_FOUND)
|
||||
|
||||
#include qmcpack/src build/src
|
||||
INCLUDE_DIRECTORIES( ${PROJECT_SOURCE_DIR}/src ${PROJECT_BINARY_DIR}/src)
|
||||
|
||||
|
@ -646,7 +640,7 @@ set(build_einspline 1)
|
|||
if(build_einspline)
|
||||
SUBDIRS(src/einspline)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_BINARY_DIR}/include)
|
||||
SET(QMC_UTIL_LIBS ${QMC_UTIL_LIBS} einspline)
|
||||
SET(QMC_UTIL_LIBS einspline ${QMC_UTIL_LIBS})
|
||||
endif()
|
||||
|
||||
#include(ExternalProject)
|
||||
|
@ -684,6 +678,14 @@ endif()
|
|||
# ENDIF(GTKMM_FOUND)
|
||||
#ENDIF(ENABLE_GTK_GUI)
|
||||
|
||||
###############################################################
|
||||
# for specific linker in the case of profiling like hpctoolkit.
|
||||
###############################################################
|
||||
if(CMAKE_CXX_LINKER)
|
||||
set(CMAKE_CXX_LINK_EXECUTABLE
|
||||
"${CMAKE_CXX_LINKER} <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
|
||||
MESSAGE(STATUS "Linker is specified as '${CMAKE_CXX_LINKER}' instead of '${CMAKE_CXX_COMPILER}'")
|
||||
endif()
|
||||
|
||||
###################################################
|
||||
# Add user extra flags
|
||||
|
|
|
@ -39,18 +39,18 @@ SET(CMAKE_FIND_ROOT_PATH
|
|||
SET(LAPACK_LIBRARY /soft/libraries/alcf/current/xl/LAPACK/lib/liblapack.a)
|
||||
SET(BLAS_LIBRARY /soft/libraries/essl/current/essl/5.1/lib64/libesslsmpbg.a)
|
||||
SET(FORTRAN_LIBRARIES
|
||||
$ENV{IBM_MAIN_DIR}/xlmass/bg/7.3/bglib64/libmass.a
|
||||
$ENV{IBM_MAIN_DIR}/xlmass/bg/7.3/bglib64/libmassv.a
|
||||
$ENV{IBM_FCMP_DIR}/bglib64/libxlf90_r.a
|
||||
$ENV{IBM_FCMP_DIR}/bglib64/libxlopt.a
|
||||
)
|
||||
|
||||
LINK_LIBRARIES(
|
||||
$ENV{IBM_MAIN_DIR}/xlmass/bg/7.3/bglib64/libmass.a
|
||||
$ENV{IBM_MAIN_DIR}/xlmass/bg/7.3/bglib64/libmassv.a
|
||||
#LINK_LIBRARIES(
|
||||
#/soft/perftools/hpctw/libmpihpm_smp.a
|
||||
#/bgsys/drivers/ppcfloor/bgpm/lib/libbgpm.a
|
||||
#/bgsys/drivers/ppcfloor/spi/lib/libSPI_upci_cnk.a
|
||||
#-pg
|
||||
)
|
||||
#)
|
||||
|
||||
FOREACH(type SHARED_LIBRARY SHARED_MODULE EXE)
|
||||
SET(CMAKE_${type}_LINK_STATIC_C_FLAGS "-Wl,-Bstatic")
|
||||
|
|
|
@ -37,8 +37,6 @@ ENDIF()
|
|||
TARGET_LINK_LIBRARIES(${p} ${l})
|
||||
ENDFOREACH(l ${QMC_UTIL_LIBS})
|
||||
|
||||
TARGET_LINK_LIBRARIES(${p} ${LAPACK_LIBRARY} ${BLAS_LIBRARY} ${FORTRAN_LIBRARIES})
|
||||
|
||||
if(ENABLE_TAU_PROFILE)
|
||||
TARGET_LINK_LIBRARIES(${p} tau)
|
||||
endif(ENABLE_TAU_PROFILE)
|
||||
|
|
|
@ -39,8 +39,6 @@ FOREACH(p ${QTOOLS})
|
|||
TARGET_LINK_LIBRARIES(${p} ${l})
|
||||
ENDFOREACH(l ${QMC_UTIL_LIBS})
|
||||
|
||||
TARGET_LINK_LIBRARIES(${p} ${LAPACK_LIBRARY} ${BLAS_LIBRARY} ${FORTRAN_LIBRARIES})
|
||||
|
||||
if(ENABLE_TAU_PROFILE)
|
||||
TARGET_LINK_LIBRARIES(${p} tau)
|
||||
endif(ENABLE_TAU_PROFILE)
|
||||
|
|
|
@ -29,8 +29,6 @@ FOREACH(p ${MYTEST})
|
|||
TARGET_LINK_LIBRARIES(${p} ${l})
|
||||
ENDFOREACH(l ${QMC_UTIL_LIBS})
|
||||
|
||||
TARGET_LINK_LIBRARIES(${p} ${LAPACK_LIBRARY} ${BLAS_LIBRARY} ${FORTRAN_LIBRARIES})
|
||||
|
||||
IF(MPI_LIBRARY)
|
||||
TARGET_LINK_LIBRARIES(${p} ${MPI_LIBRARY})
|
||||
ENDIF(MPI_LIBRARY)
|
||||
|
|
|
@ -11,7 +11,6 @@ SET(BENCH numerics)
|
|||
FOREACH(p ${BENCH})
|
||||
ADD_EXECUTABLE( ${p} ${p}.cpp)
|
||||
TARGET_LINK_LIBRARIES(${p} qmcutil)
|
||||
TARGET_LINK_LIBRARIES(${p} ${LAPACK_LIBRARY} ${BLAS_LIBRARY} ${FORTRAN_LIBRARIES})
|
||||
IF(MPI_LIBRARY)
|
||||
TARGET_LINK_LIBRARIES(${p} ${MPI_LIBRARY})
|
||||
ENDIF(MPI_LIBRARY)
|
||||
|
|
Loading…
Reference in New Issue