mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-24 18:58:08 -07:00
Jemalloc can't handle running on a system with a larger page size than it was configured with, resulting in runtime failures if e.g. a binpkg is used or build-time detection fails (some M1 processors, at least), resulting in failures like: <jemalloc>: Unsupported system page size memory allocation of 72 bytes failed On the other hand, it's quite happy to run when configured with a larger page size (e.g. 64k) on systems with smaller page sizes (16k, 4k). Apply an upstream patch to default to 64k on aarch64; users may override this by passing `--with-lg-pagesize=foo` in `EXTRA_ECONF` if they so desire. This won't resolve issues on other arches, but it's far less common to see this sort of weirdness there anyway. Closes: https://bugs.gentoo.org/964347 Signed-off-by: Matt Jolly <kangie@gentoo.org>
39 lines
1.5 KiB
Diff
39 lines
1.5 KiB
Diff
https://github.com/facebook/jemalloc/commit/7dcdafea00a3a02cfbc84a798a0cc626515011eb
|
|
From: lexprfuncall <5360361+lexprfuncall@users.noreply.github.com>
|
|
Date: Mon, 25 Aug 2025 19:39:30 -0700
|
|
Subject: [PATCH] Change the default page size to 64KiB on Aarch64 Linux
|
|
|
|
This updates the configuration script to set the default page size to
|
|
64KiB on Aarch64 Linux. This is motivated by compatibility as a build
|
|
configured for a 64KiB page will work on kernels that use the smaller
|
|
4KiB or 16KiB pages, whereas the reverse is not true.
|
|
|
|
To make the configured page size setting more visible, the script now
|
|
displays the page size when printing the configuration results.
|
|
|
|
Users that want to override the page size in to choose a smaller value
|
|
can still do so with the --with-lg-pagesize configuration option.
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -1990,6 +1990,11 @@ case "${host}" in
|
|
LG_PAGE=14
|
|
fi
|
|
;;
|
|
+ aarch64-unknown-linux-*)
|
|
+ if test "x$LG_PAGE" = "xdetect"; then
|
|
+ LG_PAGE=16
|
|
+ fi
|
|
+ ;;
|
|
esac
|
|
if test "x$LG_PAGE" = "xdetect"; then
|
|
AC_CACHE_CHECK([LG_PAGE],
|
|
@@ -3077,6 +3082,8 @@ AC_MSG_RESULT([INCLUDEDIR : ${INCLUDEDIR}])
|
|
AC_MSG_RESULT([LIBDIR : ${LIBDIR}])
|
|
AC_MSG_RESULT([MANDIR : ${MANDIR}])
|
|
AC_MSG_RESULT([])
|
|
+AC_MSG_RESULT([LG_PAGE : ${LG_PAGE}])
|
|
+AC_MSG_RESULT([])
|
|
AC_MSG_RESULT([srcroot : ${srcroot}])
|
|
AC_MSG_RESULT([abs_srcroot : ${abs_srcroot}])
|
|
AC_MSG_RESULT([objroot : ${objroot}])
|