[med-svn] [Git][med-team/libmmmulti][master] 2 commits: Link Dynamically

Nilesh Patra gitlab at salsa.debian.org
Mon Oct 26 18:54:51 GMT 2020



Nilesh Patra pushed to branch master at Debian Med / libmmmulti


Commits:
08ff8a7d by Nilesh Patra at 2020-10-26T18:52:18+00:00
Link Dynamically

- - - - -
36063859 by Nilesh Patra at 2020-10-26T18:52:40+00:00
Modify Install file

On a look at it, all code actually resides in the "header files" - the
main.cpp just contains a main function which is basically the logic for
the mmmulti binary.

The header files do _not_ seem to be used in the standard way wherein
headers contains mostly the prototypes and the corresponding c/cpp files
contain the definitions and declarations. This is also apparent by the
this package's documentation.

Hence it might be a good idea to simply make it header only (plus installing
corresponding binary) and use it in a way that it's intended to.
That being said, what I did there might be _completely wrong_ consider to revert
this commit if so

- - - - -


6 changed files:

- debian/control
- debian/libmmmulti-dev.install
- − debian/libmmmulti0.dirs
- − debian/libmmmulti0.install
- − debian/mmmulti-dev.dirs
- debian/patches/NoExternalSourceTrees.patch


Changes:

=====================================
debian/control
=====================================
@@ -51,34 +51,3 @@ Description: header files for mmmulti library
  we are virtually guaranteed to be able to complete the compute.
  .
  This package contains header files and the static library
-
-Package: libmmmulti0
-Architecture: any
-Multi-Arch: same
-Depends: ${shlibs:Depends}, ${misc:Depends}
-Description: memory-mapped multimap, multiset, and interval tree
- Sometimes you have a lot of plain-old data, but you need random access
- to it. These header-only classes combine memory-mapped files with
- high-performance parallel sorting and appropriate indexing strategies
- to support very large (>memory but <disk) multimaps, multisets, and
- interval trees.
- .
- This implements a memory backed multimap intended for use where:
-  * your keys are integers, or can be mapped to dense range of integers,
-  * the memory mapped file is on fast storage, like an SSD (although
-    this is not a requirement),
-  * you have arbitrary values of fixed size (e.g. structs, other POD
-    types) that can be sorted,
-  * you don't need dynamic updates of the table,
-  * and you are likely to run out of memory of you use a traditional
-    map or hash table,
-  * but you can handle approximately 1 bit per record in RAM.
- .
- These may seem to be very specific, but many problems can be mapped into
- a dense integer set. mmmulti::map developed first as a data structure
- to support seqwish, which uses it to generate precise variation graphs
- from pairwise alignments between collections of sequences. As this
- multimap forms a key data processing kernel in the algorithm, it can
- scale to extremely large problem sizes, limited only by available disk
- space. Although performance is much slower than an in-memory structure,
- we are virtually guaranteed to be able to complete the compute.


=====================================
debian/libmmmulti-dev.install
=====================================
@@ -1,4 +1,2 @@
-usr/include/*
-usr/lib/*/lib*.so
-usr/lib/*/pkgconfig/*
-usr/share/pkgconfig/*
+bin/*		usr/bin
+src/*.hpp	usr/include


=====================================
debian/libmmmulti0.dirs deleted
=====================================
@@ -1 +0,0 @@
-usr/lib


=====================================
debian/libmmmulti0.install deleted
=====================================
@@ -1 +0,0 @@
-usr/lib/*/lib*.so.*


=====================================
debian/mmmulti-dev.dirs deleted
=====================================
@@ -1,2 +0,0 @@
-usr/lib
-usr/include


=====================================
debian/patches/NoExternalSourceTrees.patch
=====================================
@@ -1,6 +1,17 @@
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -22,110 +22,22 @@ set(LIBRARY_OUTPUT_PATH ${CMAKE_SOURCE_D
+@@ -11,8 +11,8 @@
+ find_package(Threads REQUIRED)
+ 
+ # Use all standard-compliant optimizations
+-set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -mcx16 -g")
+-set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -mcx16 -g")
++set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -g -fPIC -fopenmp")
++set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -g -fPIC -fopenmp")
+ 
+ # Set the output folder where your program will be created
+ set(CMAKE_BINARY_DIR ${CMAKE_SOURCE_DIR}/bin)
+@@ -22,110 +22,22 @@
  # The following folder will be included
  include_directories("${PROJECT_SOURCE_DIR}")
  
@@ -119,7 +130,7 @@
    
  # macOS doesn't want you to link in libatomic this way
  if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
-@@ -137,9 +49,9 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin
+@@ -137,9 +49,9 @@
      )
  elseif (TRUE)
    target_link_libraries(mmmulti
@@ -132,3 +143,12 @@
      "-latomic"
      Threads::Threads
      )
+@@ -150,7 +62,7 @@
+ elseif (TRUE)
+   # this was hard to track down
+   # https://stackoverflow.com/questions/35116327/when-g-static-link-pthread-cause-segmentation-fault-why
+-  set(CMAKE_EXE_LINKER_FLAGS "-static -Wl,--whole-archive -lpthread -Wl,--no-whole-archive")
++  set (CMAKE_SHARED_LINKER_FLAGS "-lpthread -Wl,--as-needed")
+ endif()
+ 
+ 



View it on GitLab: https://salsa.debian.org/med-team/libmmmulti/-/compare/c2a7285114b8709ec4a76734b9b9543c817581b2...360638594a1921b4dc75fd68a5249d6f774997cf

-- 
View it on GitLab: https://salsa.debian.org/med-team/libmmmulti/-/compare/c2a7285114b8709ec4a76734b9b9543c817581b2...360638594a1921b4dc75fd68a5249d6f774997cf
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20201026/04bae593/attachment-0001.html>


More information about the debian-med-commit mailing list