From 640239b78b62977b83c920f4a29d011d3a3f9065 Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Wed, 9 Apr 2025 17:09:16 +0200 Subject: [PATCH] build: also build jemalloc --- .docker/Dockerfile.alpine | 1 + .docker/install-static-libs.sh | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/.docker/Dockerfile.alpine b/.docker/Dockerfile.alpine index 6fd1b9f3..6976f1ec 100644 --- a/.docker/Dockerfile.alpine +++ b/.docker/Dockerfile.alpine @@ -78,6 +78,7 @@ RUN apk add --no-cache \ expat-static \ nlohmann-json \ meson \ + autoconf \ gdb ARG ARCH diff --git a/.docker/install-static-libs.sh b/.docker/install-static-libs.sh index f28e7eca..097f86a4 100644 --- a/.docker/install-static-libs.sh +++ b/.docker/install-static-libs.sh @@ -30,6 +30,7 @@ BROTLI_VERSION=1.1.0 # 2023-08-31 ZSTD_VERSION=1.5.7 # 2025-02-19 LIBFUSE_VERSION=3.17.1 # 2025-03-24 MIMALLOC_VERSION=2.1.7 # 2024-05-21 +JEMALLOC_VERSION=5.3.0 # 2022-05-02 echo "Using $GCC and $CLANG" @@ -37,7 +38,7 @@ if [[ "$PKGS" == ":ubuntu" ]]; then PKGS="file,bzip2,libarchive,flac,libunwind,benchmark,openssl,cpptrace" COMPILERS="clang gcc" elif [[ "$PKGS" == ":alpine" ]]; then - PKGS="benchmark,brotli,cpptrace,double-conversion,flac,fmt,fuse,glog,libarchive,lz4,mimalloc,openssl,xxhash,zstd" + PKGS="benchmark,brotli,cpptrace,double-conversion,flac,fmt,fuse,glog,jemalloc,libarchive,lz4,mimalloc,openssl,xxhash,zstd" export COMMON_CFLAGS="-ffunction-sections -fdata-sections -fmerge-all-constants" export COMMON_CXXFLAGS="$COMMON_CFLAGS" COMPILERS="clang clang-lto clang-minsize-lto gcc" @@ -63,6 +64,7 @@ BROTLI_TARBALL="brotli-${BROTLI_VERSION}.tar.gz" ZSTD_TARBALL="zstd-${ZSTD_VERSION}.tar.gz" LIBFUSE_TARBALL="fuse-${LIBFUSE_VERSION}.tar.gz" MIMALLOC_TARBALL="mimalloc-${MIMALLOC_VERSION}.tar.gz" +JEMALLOC_TARBALL="jemalloc-${JEMALLOC_VERSION}.tar.bz2" use_lib() { local lib="$1" @@ -114,6 +116,7 @@ fetch_lib brotli https://github.com/google/brotli/archive/refs/tags/v${BROTLI_VE fetch_lib zstd https://github.com/facebook/zstd/releases/download/v${ZSTD_VERSION}/${ZSTD_TARBALL} fetch_lib fuse https://github.com/libfuse/libfuse/releases/download/fuse-${LIBFUSE_VERSION}/${LIBFUSE_TARBALL} fetch_lib mimalloc https://github.com/microsoft/mimalloc/archive/refs/tags/v${MIMALLOC_VERSION}.tar.gz ${MIMALLOC_TARBALL} +fetch_lib jemalloc https://github.com/jemalloc/jemalloc/releases/download/${JEMALLOC_VERSION}/${JEMALLOC_TARBALL} set_build_flags() { if [[ $CFLAGS =~ ^[[:space:]]*$ ]]; then @@ -206,6 +209,19 @@ for COMPILER in $COMPILERS; do make install fi + if use_lib jemalloc; then + opt_size + cd "$HOME/pkgs/$COMPILER" + tar xf ../${JEMALLOC_TARBALL} + cd jemalloc-${JEMALLOC_VERSION} + curl https://gitlab.alpinelinux.org/alpine/aports/-/raw/abc0b4170e42e2a7d835e4490ecbae49e6f3d137/main/jemalloc/musl-exception-specification-errors.patch | patch -p1 + curl https://gitlab.alpinelinux.org/alpine/aports/-/raw/abc0b4170e42e2a7d835e4490ecbae49e6f3d137/main/jemalloc/pkgconf.patch | patch -p1 + ./autogen.sh + ./configure --prefix="$INSTALL_DIR" --localstatedir=/var --sysconfdir=/etc --with-lg-hugepage=21 --disable-stats --disable-prof --enable-static --disable-shared --disable-log --disable-debug + make -j$(nproc) + make install + fi + if use_lib mimalloc; then opt_size cd "$HOME/pkgs/$COMPILER"