From 5dae3cf5c2b2b587e969d3fa17a0c3a9f21ff330 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Fri, 9 Jul 2021 16:28:31 +0200 Subject: [vbox-src] Limit number of jobs depending on host RAM --- core/modules/vbox-src/LocalConfig.kmk | 1 + core/modules/vbox-src/module.build | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) (limited to 'core/modules/vbox-src') diff --git a/core/modules/vbox-src/LocalConfig.kmk b/core/modules/vbox-src/LocalConfig.kmk index 345e6994..131eea95 100644 --- a/core/modules/vbox-src/LocalConfig.kmk +++ b/core/modules/vbox-src/LocalConfig.kmk @@ -9,3 +9,4 @@ VBOX_WITH_TESTSUITE := VBOX_WITH_ADDITIONS := VBOX_WITH_ADDITIONS_PACKING := VBOX_WITH_VALIDATIONKIT := +VBOX_WITH_CLOUD_NET := diff --git a/core/modules/vbox-src/module.build b/core/modules/vbox-src/module.build index c5d89c65..04259c55 100644 --- a/core/modules/vbox-src/module.build +++ b/core/modules/vbox-src/module.build @@ -28,7 +28,6 @@ build() { [[ "${BASEVER: -1}" =~ ^[0-9]$ ]] || BASEVER="${BASEVER:0:-1}" cd "${MODULE_WORK_DIR}/src/VirtualBox-${BASEVER}" || \ perror "Could not cd to '${MODULE_WORK_DIR}/src/VirtualBox-${BASEVER}'." - sed -i 's/VBOX_WITH_CLOUD_NET = 1/VBOX_WITH_CLOUD_NET =/g' "Config.kmk" || perror "Could not disable cloud networking." local VBOX_BUILD_DIR="${MODULE_WORK_DIR}/src/VirtualBox-${BASEVER}/build" mkdir -p "$VBOX_BUILD_DIR" || perror "Failed to mkdir '$VBOX_BUILD_DIR'." ./configure \ @@ -41,12 +40,15 @@ build() { || perror "'configure' failed." ( + # Limit job count - can easily OOM + num="$( awk '$1 == "MemTotal:" { print int(0.25 + $2 / (1024**2)) }' /proc/meminfo )" + (( num > CPU_CORES )) && num="$CPU_CORES" # the configure script should have created a file called 'env.sh' source "${VBOX_BUILD_DIR}/env.sh" || perror "Failed to source '${VBOX_BUILD_DIR}/env.sh'." # copy the LocalConfig.kmk to the build dir to be more LSB-compliant cp "${MODULE_DIR}/LocalConfig.kmk" "${VBOX_BUILD_DIR}" || \ perror "Failed to cp LocalConfig.kmk to build dir" - kmk all || perror "Failed to execute 'kmk'." + kmk -j "$num" all || perror "Failed to execute 'kmk'." # check the generated build directory, use BUILD_PLATFORM_ARCH defined in env.sh local VBOX_RELEASE_BUILD_DIR="${VBOX_BUILD_DIR}/linux.${BUILD_PLATFORM_ARCH}/release" -- cgit v1.2.3-55-g7522