From b3bdf94fc293c0de39c2f1934483e69124ebc09d Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Mon, 1 Apr 2024 18:24:36 +0200 Subject: [PATCH] feat: list jemalloc dependency --- src/dwarfs/library_dependencies.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/dwarfs/library_dependencies.cpp b/src/dwarfs/library_dependencies.cpp index af1c2b57..3f16a91e 100644 --- a/src/dwarfs/library_dependencies.cpp +++ b/src/dwarfs/library_dependencies.cpp @@ -27,6 +27,10 @@ #include #include +#ifdef DWARFS_USE_JEMALLOC +#include +#endif + #include "dwarfs/block_compressor.h" #include "dwarfs/library_dependencies.h" @@ -47,6 +51,19 @@ std::string version_to_string(uint64_t version, version_format fmt) { throw std::invalid_argument("unsupported version format"); } +#ifdef DWARFS_USE_JEMALLOC +std::string get_jemalloc_version() { + const char* j; + size_t s = sizeof(j); + ::mallctl("version", &j, &s, nullptr, 0); + std::string rv{j}; + if (auto pos = rv.find('-'); pos != std::string::npos) { + rv.erase(pos, std::string::npos); + } + return rv; +} +#endif + } // namespace std::string library_dependencies::common_as_string() { @@ -88,6 +105,10 @@ void library_dependencies::add_common_libraries() { OPENSSL_version_patch()); add_library("libboost", BOOST_VERSION, version_format::boost); +#ifdef DWARFS_USE_JEMALLOC + add_library("libjemalloc", get_jemalloc_version()); +#endif + compression_registry::instance().for_each_algorithm( [this](compression_type, compression_info const& info) { for (auto const& lib : info.library_dependencies()) {