From 21baf11aa507e92b9fc98d0b0e814ba88910889f Mon Sep 17 00:00:00 2001 From: Zhaoqi Zhu Date: Tue, 18 Aug 2020 17:21:13 -0700 Subject: [PATCH 1/5] Create exclude_openblas.ver --- cmake/exclude_openblas.ver | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 cmake/exclude_openblas.ver diff --git a/cmake/exclude_openblas.ver b/cmake/exclude_openblas.ver new file mode 100644 index 000000000000..ca8e81141168 --- /dev/null +++ b/cmake/exclude_openblas.ver @@ -0,0 +1,22 @@ + +{ + local: + cblas_*; + *portrf_; + *portri_; + *gelqf_; + *orglq_; + *geqrf_; + *orgqr_; + *syevd_; + *gesvd_; + *gesdd_; + *geev_; + *getrf_; + *getri_; + *gesv_; + *gelsd_; + *posv*; +}; + + From 9321c4fefb8d26de01d40a4c2d4a93a07d4abc09 Mon Sep 17 00:00:00 2001 From: Zhaoqi Zhu Date: Tue, 18 Aug 2020 17:21:55 -0700 Subject: [PATCH 2/5] Update exclude_openblas.ver --- cmake/exclude_openblas.ver | 1 - 1 file changed, 1 deletion(-) diff --git a/cmake/exclude_openblas.ver b/cmake/exclude_openblas.ver index ca8e81141168..d23d0fbb80b9 100644 --- a/cmake/exclude_openblas.ver +++ b/cmake/exclude_openblas.ver @@ -16,7 +16,6 @@ *getri_; *gesv_; *gelsd_; - *posv*; }; From 73d7a40e7e90dce42819d4f9ef9a16e26f853234 Mon Sep 17 00:00:00 2001 From: Zhaoqi Zhu Date: Tue, 18 Aug 2020 17:22:59 -0700 Subject: [PATCH 3/5] Update FindOpenBLAS.cmake --- cmake/Modules/FindOpenBLAS.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/Modules/FindOpenBLAS.cmake b/cmake/Modules/FindOpenBLAS.cmake index a3a79caae461..bdda43399fa3 100644 --- a/cmake/Modules/FindOpenBLAS.cmake +++ b/cmake/Modules/FindOpenBLAS.cmake @@ -53,7 +53,7 @@ SET(Open_BLAS_LIB_SEARCH_PATHS ) FIND_PATH(OpenBLAS_INCLUDE_DIR NAMES cblas.h PATHS ${Open_BLAS_INCLUDE_SEARCH_PATHS}) -FIND_LIBRARY(OpenBLAS_LIB NAMES openblas PATHS ${Open_BLAS_LIB_SEARCH_PATHS}) +FIND_LIBRARY(OpenBLAS_LIB NAMES libopenblas.a openblas PATHS ${Open_BLAS_LIB_SEARCH_PATHS}) IF(NOT OpenBLAS_LIB) FIND_FILE(OpenBLAS_LIB NAMES libopenblas.dll.a PATHS ${Open_BLAS_LIB_SEARCH_PATHS}) ENDIF() From e8233bedb57acf1e29747a36625c0f98096472bb Mon Sep 17 00:00:00 2001 From: Zhaoqi Zhu Date: Tue, 18 Aug 2020 17:24:24 -0700 Subject: [PATCH 4/5] Update CMakeLists.txt --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index b494fdd75ae7..1d27ee0565ae 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -656,6 +656,7 @@ if(UNIX) set_target_properties(mxnet PROPERTIES LINK_FLAGS "-Wl,--version-script=${PROJECT_SOURCE_DIR}/cmake/libmxnet.ver") endif() endif() + set_target_properties(mxnet PROPERTIES LINK_FLAGS "-Wl,--version-script=${PROJECT_SOURCE_DIR}/cmake/exclude_openblas.ver") elseif(MSVC) if(USE_CUDA) if(USE_SPLIT_ARCH_DLL) From 3dae02f3e4e04073bf6e7af74b1707f8a3fa5953 Mon Sep 17 00:00:00 2001 From: Zhaoqi Zhu Date: Tue, 18 Aug 2020 17:59:59 -0700 Subject: [PATCH 5/5] Update CMakeLists.txt --- CMakeLists.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1d27ee0565ae..b42cd79d74f3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -91,6 +91,7 @@ option(BUILD_CYTHON_MODULES "Build cython modules." OFF) option(LOG_FATAL_THROW "Log exceptions but do not abort" ON) cmake_dependent_option(USE_SPLIT_ARCH_DLL "Build a separate DLL for each Cuda arch (Windows only)." ON "MSVC" OFF) cmake_dependent_option(USE_CCACHE "Attempt using CCache to wrap the compilation" ON "UNIX" OFF) +option(USE_STATIC_LINK_TO_OPENBLAS "Statically link to openblas to avoid name clashing" ON) message(STATUS "CMAKE_CROSSCOMPILING ${CMAKE_CROSSCOMPILING}") @@ -656,7 +657,6 @@ if(UNIX) set_target_properties(mxnet PROPERTIES LINK_FLAGS "-Wl,--version-script=${PROJECT_SOURCE_DIR}/cmake/libmxnet.ver") endif() endif() - set_target_properties(mxnet PROPERTIES LINK_FLAGS "-Wl,--version-script=${PROJECT_SOURCE_DIR}/cmake/exclude_openblas.ver") elseif(MSVC) if(USE_CUDA) if(USE_SPLIT_ARCH_DLL) @@ -890,3 +890,7 @@ if(BUILD_CYTHON_MODULES) message(FATAL_ERROR "No python interpreter found to build cython modules") endif() endif() + +if(USE_STATIC_LINK_TO_OPENBLAS AND USE_BLAS STREQUAL "open") + set_target_properties(mxnet PROPERTIES LINK_FLAGS "-Wl,--version-script=${PROJECT_SOURCE_DIR}/cmake/exclude_openblas.ver") +endif()