summaryrefslogtreecommitdiffstats
path: root/core/modules/vbox-src
diff options
context:
space:
mode:
authorSimon Rettberg2021-07-09 16:28:31 +0200
committerSimon Rettberg2021-07-09 16:28:31 +0200
commit5dae3cf5c2b2b587e969d3fa17a0c3a9f21ff330 (patch)
tree86393aab8c6040cd06bbb54ea12b6021f701a742 /core/modules/vbox-src
parentstage4: add system-uuid (diff)
downloadmltk-5dae3cf5c2b2b587e969d3fa17a0c3a9f21ff330.tar.gz
mltk-5dae3cf5c2b2b587e969d3fa17a0c3a9f21ff330.tar.xz
mltk-5dae3cf5c2b2b587e969d3fa17a0c3a9f21ff330.zip
[vbox-src] Limit number of jobs depending on host RAM
Diffstat (limited to 'core/modules/vbox-src')
-rw-r--r--core/modules/vbox-src/LocalConfig.kmk1
-rw-r--r--core/modules/vbox-src/module.build6
2 files changed, 5 insertions, 2 deletions
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"