diff --git a/dev-libs/memkind/Manifest b/dev-libs/memkind/Manifest index ccd278ddaa..a753c820a7 100644 --- a/dev-libs/memkind/Manifest +++ b/dev-libs/memkind/Manifest @@ -1 +1,2 @@ DIST memkind-1.11.0.tar.gz 1072455 BLAKE2B 2de2cf053687ba2150f694e8c4143eeca74fc377feee2b6892067b661d8c58d7d5fcacb021fc92a47dad27f52aa4cbc6408cfede3141ab1f8ae81147b49aa6a7 SHA512 0b5bde35b3565c730fa954aebfe2ccbecd1e120c920d05acdbc0a74914731a90aeef8d57101f1f47bd35fd310bc143fa517bc871b32e592b8412384ff652fc05 +DIST memkind-1.13.0.tar.gz 1111767 BLAKE2B fb2b0ca70b6da32b2bf42cba68f549c279f301f2c9b2eb2f7dfcb2909105bb1eb84bd6abdf15dfcb5f45a5e0bab7fbd0aef95ce090b06b02bc8ae099bdf1b0ca SHA512 509d49e3c67321496b322469d4bb13aa8b9038e94dc9bdfb379c38e86a5705ba13bc015443da8291be49711e14bce9845b697f62cfcc981168f255f9fb515b0e diff --git a/dev-libs/memkind/memkind-1.13.0.ebuild b/dev-libs/memkind/memkind-1.13.0.ebuild new file mode 100644 index 0000000000..ac1b429598 --- /dev/null +++ b/dev-libs/memkind/memkind-1.13.0.ebuild @@ -0,0 +1,83 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{8..10} pypy3 ) + +inherit autotools linux-info python-any-r1 toolchain-funcs + +DESCRIPTION="user extensible heap manager built on top of jemalloc" +HOMEPAGE="https://memkind.github.io/memkind" +SRC_URI="https://github.com/memkind/memkind/archive/v${PV}.tar.gz -> ${P}.tar.gz" +KEYWORDS="~amd64" + +LICENSE="BSD" +SLOT="0" +IUSE="+daxctl debug decorators filelog +heap-manager hwloc initial-exec-tls openmp secure test +tls" + +RDEPEND=" + daxctl? ( sys-block/ndctl ) + hwloc? ( sys-apps/hwloc ) + sys-process/numactl +" +DEPEND=" + ${RDEPEND} + ${PYTHON_DEPS} +" + +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 + cd jemalloc && eautoreconf +} + +src_configure() { + tc-export AR + local myconf=( + --disable-debug + --disable-gcov + --enable-shared + --enable-static + $(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 logging-to-file filelog) + $(use_enable openmp) + $(use_enable secure) + $(use_enable tls) + ) + 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 + emake check +} diff --git a/dev-libs/memkind/metadata.xml b/dev-libs/memkind/metadata.xml index 1c0d07d524..c063cd6ecf 100644 --- a/dev-libs/memkind/metadata.xml +++ b/dev-libs/memkind/metadata.xml @@ -19,6 +19,7 @@ The memkind library is a user extensible heap manager built on top of jemalloc w Enable decorators Allow switching allocator at runtime Build library with hwloc support + Log to file for each process Build library with initial-exec-tls support Build libraries with security enhancements Enable thread local storage