aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-cluster/scr/files/scr-3.0_pre2-shared-libscr_base.patch')
-rw-r--r--sys-cluster/scr/files/scr-3.0_pre2-shared-libscr_base.patch70
1 files changed, 70 insertions, 0 deletions
diff --git a/sys-cluster/scr/files/scr-3.0_pre2-shared-libscr_base.patch b/sys-cluster/scr/files/scr-3.0_pre2-shared-libscr_base.patch
new file mode 100644
index 000000000..4b8d71b70
--- /dev/null
+++ b/sys-cluster/scr/files/scr-3.0_pre2-shared-libscr_base.patch
@@ -0,0 +1,70 @@
+From 3cb02f312447731b5a949aca388d43b651b53a0d Mon Sep 17 00:00:00 2001
+From: Alessandro Barbieri <lssndrbarbieri@gmail.com>
+Date: Sat, 30 Oct 2021 20:28:49 +0200
+Subject: [PATCH 1/2] build libscr_base.so
+
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -94,8 +94,24 @@ SET_TARGET_PROPERTIES(scr-static PROPERTIES OUTPUT_NAME scr CLEAN_DIRECT_OUTPUT
+ INSTALL(TARGETS scr-static DESTINATION ${CMAKE_INSTALL_LIBDIR})
+
+ # Non-MPI library for CLI
+-ADD_LIBRARY(scr_base STATIC ${cliscr_noMPI_srcs})
+-TARGET_LINK_LIBRARIES(scr_base ${SCR_EXTERNAL_SERIAL_LIBS})
++ADD_LIBRARY(cliscr_noMPI_o OBJECT ${cliscr_noMPI_srcs})
++
++IF(BUILD_SHARED_LIBS)
++ ADD_LIBRARY(scr_base SHARED $<TARGET_OBJECTS:cliscr_noMPI_o>)
++ TARGET_LINK_LIBRARIES(scr_base ${SCR_EXTERNAL_SERIAL_LIBS})
++ SET_TARGET_PROPERTIES(scr_base PROPERTIES OUTPUT_NAME scr_base CLEAN_DIRECT_OUTPUT 1)
++ INSTALL(TARGETS scr_base DESTINATION ${CMAKE_INSTALL_LIBDIR})
++ENDIF(BUILD_SHARED_LIBS)
++
++ADD_LIBRARY(scr_base-static STATIC $<TARGET_OBJECTS:cliscr_noMPI_o>)
++IF(SCR_LINK_STATIC)
++ SET_TARGET_PROPERTIES(scr_base-static PROPERTIES LINK_SEARCH_START_STATIC 1)
++ SET_TARGET_PROPERTIES(scr_base-static PROPERTIES LINK_SEARCH_END_STATIC 1)
++ENDIF(SCR_LINK_STATIC)
++TARGET_LINK_LIBRARIES(scr_base-static ${SCR_EXTERNAL_SERIAL_LIBS})
++
++SET_TARGET_PROPERTIES(scr_base-static PROPERTIES OUTPUT_NAME scr_base CLEAN_DIRECT_OUTPUT 1)
++INSTALL(TARGETS scr_base-static DESTINATION ${CMAKE_INSTALL_LIBDIR})
+
+ # Fortran
+ IF(ENABLE_FORTRAN)
+@@ -147,9 +163,13 @@ LIST(APPEND cliscr_c_bins
+
+ # Build and install C binaries
+ FOREACH(bin IN ITEMS ${cliscr_c_bins})
+- ADD_EXECUTABLE(${bin} ${bin}.c)
+- TARGET_LINK_LIBRARIES(${bin} scr_base)
+- INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${bin} DESTINATION ${CMAKE_INSTALL_BINDIR})
++ ADD_EXECUTABLE(${bin} ${bin}.c)
++ IF(SCR_LINK_STATIC)
++ TARGET_LINK_LIBRARIES(${bin} scr_base-static)
++ ELSE(SCR_LINK_STATIC)
++ TARGET_LINK_LIBRARIES(${bin} scr_base)
++ ENDIF(SCR_LINK_STATIC)
++ INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${bin} DESTINATION ${CMAKE_INSTALL_BINDIR})
+ ENDFOREACH(bin IN ITEMS ${cliscr_c_bins})
+
+ # Build and install CLI binaries that link full SCR library
+
+From e3d50ca7cab309273f3195c71af14352059d83aa Mon Sep 17 00:00:00 2001
+From: Alessandro Barbieri <lssndrbarbieri@gmail.com>
+Date: Sat, 30 Oct 2021 20:55:07 +0200
+Subject: [PATCH 2/2] remove source files of cli binaries from library
+
+to avoid `multiple definition of main`
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -32,9 +32,6 @@ LIST(APPEND cliscr_noMPI_srcs
+ scr_meta.c
+ scr_param.c
+ scr_util.c
+- scr_rebuild_xor.c
+- scr_rebuild_partner.c
+- scr_rebuild_rs.c
+ )
+
+ LIST(APPEND libscr_srcs