From 5368a1e2e3f87ae254c6407ce9354d40a1859730 Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Tue, 15 Dec 2020 14:53:16 +0100 Subject: [PATCH] Require jemalloc --- .travis.yml | 1 + CMakeLists.txt | 8 ++++++-- README.md | 1 + cmake/static_link.sh | 5 ++++- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5614b31e..d3004826 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,6 +25,7 @@ addons: - libboost-system-dev - libboost-thread-dev - libevent-dev + - libjemalloc-dev - libdouble-conversion-dev - libiberty-dev - liblz4-dev diff --git a/CMakeLists.txt b/CMakeLists.txt index d755b92d..6654bc15 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -94,8 +94,10 @@ if(NOT FUSE_FOUND AND NOT FUSE3_FOUND) message(FATAL_ERROR "No FUSE or FUSE3 library found") endif() -find_path(SPARSEHASH_INCLUDE_DIR sparsehash/dense_hash_map REQUIRED) -find_program(RONN_EXE ronn) +find_path(SPARSEHASH_INCLUDE_DIR sparsehash/dense_hash_map + DOC "dense_hash_map header" REQUIRED) +find_program(RONN_EXE ronn DOC "ronn man page generator" REQUIRED) +find_library(JEMALLOC_LIBRARIES jemalloc DOC "jemalloc library" REQUIRED) set(ZSTD_INCLUDE_DIR "" @@ -205,6 +207,7 @@ if(FUSE3_FOUND) FUSE_USE_VERSION=35) set_target_properties(dwarfs-bin PROPERTIES OUTPUT_NAME dwarfs) target_link_libraries(dwarfs-bin PkgConfig::FUSE3) + target_link_libraries(dwarfs-bin ${JEMALLOC_LIBRARIES}) add_custom_target(mount.dwarfs ALL COMMAND ${CMAKE_COMMAND} -E create_symlink dwarfs mount.dwarfs) install(TARGETS dwarfs-bin RUNTIME DESTINATION sbin) @@ -218,6 +221,7 @@ if(FUSE_FOUND) FUSE_USE_VERSION=29) set_target_properties(dwarfs2-bin PROPERTIES OUTPUT_NAME dwarfs2) target_link_libraries(dwarfs2-bin PkgConfig::FUSE) + target_link_libraries(dwarfs-bin ${JEMALLOC_LIBRARIES}) add_custom_target( mount.dwarfs2 ALL COMMAND ${CMAKE_COMMAND} -E create_symlink dwarfs2 mount.dwarfs2) diff --git a/README.md b/README.md index b5efacbd..81a3f7c6 100644 --- a/README.md +++ b/README.md @@ -146,6 +146,7 @@ A good starting point for apt-based systems is probably: libboost-system-dev \ libboost-thread-dev \ libevent-dev \ + libjemalloc-dev \ libdouble-conversion-dev \ libiberty-dev \ liblz4-dev \ diff --git a/cmake/static_link.sh b/cmake/static_link.sh index fc87ce92..9612e083 100644 --- a/cmake/static_link.sh +++ b/cmake/static_link.sh @@ -5,10 +5,13 @@ target=$1 shift fuse="" +malloc="" if [[ "$target" == "dwarfs" ]]; then fuse="/usr/lib/x86_64-linux-gnu/libfuse3.a" + malloc="/usr/lib/x86_64-linux-gnu/libjemalloc.a" elif [[ "$target" == "dwarfs2" ]]; then fuse="/usr/lib/x86_64-linux-gnu/libfuse.a" + malloc="/usr/lib/x86_64-linux-gnu/libjemalloc.a" fi g++ -static -static-libgcc -static-libstdc++ "$@" -o "$target" \ @@ -36,12 +39,12 @@ g++ -static -static-libgcc -static-libstdc++ "$@" -o "$target" \ /usr/lib/x86_64-linux-gnu/libssl.a \ /usr/lib/x86_64-linux-gnu/libcrypto.a \ /usr/lib/x86_64-linux-gnu/libiberty.a \ - /usr/lib/x86_64-linux-gnu/libiberty.a \ /usr/lib/x86_64-linux-gnu/libunwind.a \ /usr/lib/x86_64-linux-gnu/liblz4.a \ /usr/lib/x86_64-linux-gnu/liblzma.a \ /usr/lib/x86_64-linux-gnu/libz.a \ /usr/lib/gcc/x86_64-linux-gnu/10/libatomic.a \ + $malloc \ /usr/lib/x86_64-linux-gnu/libpthread.a \ /usr/lib/x86_64-linux-gnu/libdl.a \ /usr/lib/x86_64-linux-gnu/libc.a \