|
@@ -426,6 +426,7 @@ vxhs=""
|
|
|
supported_cpu="no"
|
|
|
supported_os="no"
|
|
|
bogus_os="no"
|
|
|
+malloc_trim=""
|
|
|
|
|
|
# parse CC options first
|
|
|
for opt do
|
|
@@ -1047,6 +1048,10 @@ for opt do
|
|
|
;;
|
|
|
--enable-tcg) tcg="yes"
|
|
|
;;
|
|
|
+ --disable-malloc-trim) malloc_trim="no"
|
|
|
+ ;;
|
|
|
+ --enable-malloc-trim) malloc_trim="yes"
|
|
|
+ ;;
|
|
|
--disable-spice) spice="no"
|
|
|
;;
|
|
|
--enable-spice) spice="yes"
|
|
@@ -1466,6 +1471,7 @@ Advanced options (experts only):
|
|
|
Default:trace-<pid>
|
|
|
--disable-slirp disable SLIRP userspace network connectivity
|
|
|
--enable-tcg-interpreter enable TCG with bytecode interpreter (TCI)
|
|
|
+ --enable-malloc-trim enable libc malloc_trim() for memory optimization
|
|
|
--oss-lib path to OSS library
|
|
|
--cpu=CPU Build for host CPU [$cpu]
|
|
|
--with-coroutine=BACKEND coroutine backend. Supported options:
|
|
@@ -3860,6 +3866,30 @@ if test "$tcmalloc" = "yes" && test "$jemalloc" = "yes" ; then
|
|
|
exit 1
|
|
|
fi
|
|
|
|
|
|
+# Even if malloc_trim() is available, these non-libc memory allocators
|
|
|
+# do not support it.
|
|
|
+if test "$tcmalloc" = "yes" || test "$jemalloc" = "yes" ; then
|
|
|
+ if test "$malloc_trim" = "yes" ; then
|
|
|
+ echo "Disabling malloc_trim with non-libc memory allocator"
|
|
|
+ fi
|
|
|
+ malloc_trim="no"
|
|
|
+fi
|
|
|
+
|
|
|
+#######################################
|
|
|
+# malloc_trim
|
|
|
+
|
|
|
+if test "$malloc_trim" != "no" ; then
|
|
|
+ cat > $TMPC << EOF
|
|
|
+#include <malloc.h>
|
|
|
+int main(void) { malloc_trim(0); return 0; }
|
|
|
+EOF
|
|
|
+ if compile_prog "" "" ; then
|
|
|
+ malloc_trim="yes"
|
|
|
+ else
|
|
|
+ malloc_trim="no"
|
|
|
+ fi
|
|
|
+fi
|
|
|
+
|
|
|
##########################################
|
|
|
# tcmalloc probe
|
|
|
|
|
@@ -5505,6 +5535,7 @@ if test "$tcg" = "yes" ; then
|
|
|
echo "TCG debug enabled $debug_tcg"
|
|
|
echo "TCG interpreter $tcg_interpreter"
|
|
|
fi
|
|
|
+echo "malloc trim support $malloc_trim"
|
|
|
echo "RDMA support $rdma"
|
|
|
echo "fdt support $fdt"
|
|
|
echo "preadv support $preadv"
|
|
@@ -6015,6 +6046,10 @@ if test "$opengl" = "yes" ; then
|
|
|
fi
|
|
|
fi
|
|
|
|
|
|
+if test "$malloc_trim" = "yes" ; then
|
|
|
+ echo "CONFIG_MALLOC_TRIM=y" >> $config_host_mak
|
|
|
+fi
|
|
|
+
|
|
|
if test "$avx2_opt" = "yes" ; then
|
|
|
echo "CONFIG_AVX2_OPT=y" >> $config_host_mak
|
|
|
fi
|