Fix module definition conflicts between LAPACK and ReLAPACK
authorMartin Kroeker <martin@ruby.chemie.uni-freiburg.de>
Mon, 4 Mar 2019 20:17:08 +0000 (21:17 +0100)
committerGitHub <noreply@github.com>
Mon, 4 Mar 2019 20:17:08 +0000 (21:17 +0100)
for #2043

CMakeLists.txt

index 9de894f..a27c1c0 100644 (file)
@@ -75,10 +75,10 @@ endif ()
 
 set(SUBDIRS    ${BLASDIRS})
 if (NOT NO_LAPACK)
-  list(APPEND SUBDIRS lapack)
   if(BUILD_RELAPACK)
     list(APPEND SUBDIRS relapack/src)
   endif()
+  list(APPEND SUBDIRS lapack)
 endif ()
 
 # set which float types we want to build for
@@ -224,6 +224,14 @@ set_target_properties(${OpenBLAS_LIBNAME} PROPERTIES
   SOVERSION ${OpenBLAS_MAJOR_VERSION}
 )
 
+if (BUILD_SHARED_LIBS AND BUILD_RELAPACK)
+  if (NOT MSVC)
+    target_link_libraries(${OpenBLAS_LIBNAME} "-Wl,-allow-multiple-definition")
+  else()
+    target_link_libraries(${OpenBLAS_LIBNAME} "/FORCE:MULTIPLE")
+  endif()
+endif()
+
 if (BUILD_SHARED_LIBS AND NOT ${SYMBOLPREFIX}${SYMBOLSUFIX} STREQUAL "")
 if (NOT DEFINED ARCH)
   set(ARCH_IN "x86_64")