jemalloc: add package

jemalloc is a general purpose malloc(3) implementation that emphasizes
fragmentation avoidance and scalable concurrency support.

Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
This commit is contained in:
Philip Prindeville
2025-06-08 14:27:10 -06:00
parent beb0de663c
commit a276d5db43

61
libs/libjemalloc/Makefile Normal file
View File

@@ -0,0 +1,61 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=jemalloc
PKG_VERSION:=5.3.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/jemalloc/jemalloc/archive/refs/tags/
PKG_SOURCE_URL_FILE:=$(PKG_VERSION).tar.gz
PKG_HASH:=ef6f74fd45e95ee4ef7f9e19ebe5b075ca6b7fbe0140612b2a161abafb7ee179
PKG_FIXUP:=autoreconf
PKG_BUILD_PARALLEL:=1
PKG_LICENSE:=BSD-2-Clause
PKG_LICENSE_FILES:=COPYING
PKG_MAINTAINER:=Philip Prindeville <philipp@redfish-solutions.com>
include $(INCLUDE_DIR)/package.mk
define Package/libjemalloc
SECTION:=libs
CATEGORY:=Libraries
TITLE:=Jemalloc general purpose allocator
URL:=https://github.com/jemalloc/jemalloc
DEPENDS:= +libunwind +libstdcpp
ABI_VERSION:=2
endef
define Package/libjemalloc/Description
Jemalloc is a general purpose malloc(3) implementation that emphasizes
fragmentation avoidance and scalable concurrency support.
endef
CONFIGURE_ARGS += \
--enable-shared \
--disable-static \
--enable-prof \
--enable-prof-libunwind \
--enable-readlinkat
MAKE_FLAGS += enable_doc=0
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/lib/libjemalloc.so* $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/include/jemalloc
$(CP) $(PKG_BUILD_DIR)/include/jemalloc/*.h $(1)/usr/include/jemalloc
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(CP) $(PKG_BUILD_DIR)/jemalloc.pc $(1)/usr/lib/pkgconfig/
endef
define Package/libjemalloc/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/lib/libjemalloc.so.$(ABI_VERSION) $(1)/usr/lib
$(LN) libjemalloc.so.$(ABI_VERSION) $(1)/usr/lib/libjemalloc.so
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/{jemalloc-config,jemalloc.sh,jeprof} $(1)/usr/bin/
endef
$(eval $(call BuildPackage,libjemalloc))