From 9d64d349f1b52d953d9cbb0378b5b9163893c3ad Mon Sep 17 00:00:00 2001 From: Alessandro Barbieri Date: Sun, 5 Sep 2021 08:33:28 +0200 Subject: [PATCH] dev-libs/memkind: more useflags Signed-off-by: Alessandro Barbieri --- ...1.0-r1.ebuild => memkind-1.11.0-r2.ebuild} | 33 ++++++++++++++++--- dev-libs/memkind/metadata.xml | 9 +++++ 2 files changed, 38 insertions(+), 4 deletions(-) rename dev-libs/memkind/{memkind-1.11.0-r1.ebuild => memkind-1.11.0-r2.ebuild} (58%) diff --git a/dev-libs/memkind/memkind-1.11.0-r1.ebuild b/dev-libs/memkind/memkind-1.11.0-r2.ebuild similarity index 58% rename from dev-libs/memkind/memkind-1.11.0-r1.ebuild rename to dev-libs/memkind/memkind-1.11.0-r2.ebuild index a3e239b543..45310e91a7 100644 --- a/dev-libs/memkind/memkind-1.11.0-r1.ebuild +++ b/dev-libs/memkind/memkind-1.11.0-r2.ebuild @@ -14,10 +14,11 @@ KEYWORDS="~amd64" LICENSE="BSD" SLOT="0" -IUSE="+heap-manager openmp secure test +tls" #daxctl +IUSE="+daxctl debug decorators +heap-manager hwloc initial-exec-tls openmp secure test +tls" RDEPEND=" - sys-block/ndctl + daxctl? ( sys-block/ndctl ) + hwloc? ( sys-apps/hwloc ) sys-process/numactl " DEPEND=" @@ -29,6 +30,19 @@ PATCHES=( "${FILESDIR}/${PN}-respect-ar.patch" ) RESTRICT="test" # ERROR: ./test/test.sh requires a NUMA enabled system with more than one node. #RESTRICT="!test? ( test )" +pkg_pretend() { + linux-info_pkg_setup + CONFIG_CHECK_MODULES="" + if use daxctl; then + CONFIG_CHECK_MODULES+="DEV_DAX_KMEM " + fi + if linux_config_exists; then + for module in ${CONFIG_CHECK_MODULES}; do + linux_chkconfig_present ${module} || ewarn "${module} needs to be enabled" + done + fi +} + src_prepare() { default eautoreconf @@ -38,11 +52,16 @@ src_prepare() { src_configure() { tc-export AR local myconf=( - --disable-silent-rules + --disable-debug + --disable-gcov --enable-shared --enable-static - --enable-daxctl + $(use_enable daxctl) + $(use_enable decorators) + $(use_enable debug debug-jemalloc) $(use_enable heap-manager) + $(use_enable hwloc) + $(use_enable initial-exec-tls memkind-initial-exec-tls) $(use_enable openmp) $(use_enable secure) $(use_enable tls) @@ -50,6 +69,12 @@ src_configure() { econf "${myconf[@]}" } +src_install() { + default + find "${ED}" -name '*.la' -delete || die + find "${ED}" -name '*.a' -delete || die +} + src_test() { addwrite /proc/sys/vm/nr_hugepages echo 3000 > /proc/sys/vm/nr_hugepages diff --git a/dev-libs/memkind/metadata.xml b/dev-libs/memkind/metadata.xml index 85632a06d1..1c0d07d524 100644 --- a/dev-libs/memkind/metadata.xml +++ b/dev-libs/memkind/metadata.xml @@ -1,16 +1,25 @@ + +The memkind library is a user extensible heap manager built on top of jemalloc which enables control of memory characteristics and a partitioning of the heap between kinds of memory. The kinds of memory are defined by operating system memory policies that have been applied to virtual address ranges. Memory characteristics supported by memkind without user extension include control of NUMA and page size features. The jemalloc non-standard interface has been extended to enable specialized arenas to make requests for virtual memory from the operating system through the memkind partition interface. Through the other memkind interfaces the user can control and extend memory partition features and allocate memory while selecting enabled features. Memkind interface allows to create and control file-backed memory (PMEM kind) on specified device. + co-maintainers welcome lssndrbarbieri@gmail.com Alessandro Barbieri + https://github.com/memkind/memkind/issues memkind/memkind + Build library with daxctl support + Build debugging jemalloc code + Enable decorators Allow switching allocator at runtime + Build library with hwloc support + Build library with initial-exec-tls support Build libraries with security enhancements Enable thread local storage