commit: 8c77c5ad0a0785cc8745bf6438e06c43e98a0e2f Author: Fabian Groffen <grobian <AT> gentoo <DOT> org> AuthorDate: Fri Dec 19 20:13:55 2025 +0000 Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org> CommitDate: Tue Dec 23 07:53:14 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8c77c5ad
check-reqs.eclass: properly extract memory and swap for Darwin and Solaris Use the proper methods on Darwin and Solaris hosts to get available memory and available swap in kibibytes. Closes: https://bugs.gentoo.org/404207 Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org> eclass/check-reqs.eclass | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/eclass/check-reqs.eclass b/eclass/check-reqs.eclass index 11eec694ef04..6084c25c3167 100644 --- a/eclass/check-reqs.eclass +++ b/eclass/check-reqs.eclass @@ -333,7 +333,28 @@ _check-reqs_memory() { if [[ -r /proc/meminfo ]] ; then actual_memory=$(awk '/MemTotal/ { print $2 }' /proc/meminfo) actual_swap=$(awk '/SwapTotal/ { print $2 }' /proc/meminfo) + elif [[ ${CBUILD:-${CHOST}} == *-darwin* ]] ; then + # bug #404207 + actual_memory=$(sysctl -n hw.memsize 2>/dev/null) + [[ $? -eq 0 ]] && actual_memory=$((actual_memory / 1024)) + actual_swap=$(sysctl -n vm.swapusage 2>/dev/null) + if [[ $? -eq 0 ]] ; then + actual_swap=$(awk '{ + split($3, v, 'M', s); print int(v[0] * 1024) + }' <<<"${actual_swap}") + fi + elif [[ ${CBUILD:-${CHOST}} == *-solaris* ]] ; then + actual_memory=$(prtconf 2>/dev/null | grep Memory) + if [[ $? -eq 0 ]] ; then + actual_memory=$(awk '{ + print int($3 * 1024) + }' <<<"${actual_memory}") + fi + actual_swap=$(swap -s 2>/dev/null) + [[ $? -eq 0 ]] && actual_swap=$( + sed -n 's/^.*, \([0-9]\+\)k available.*$/\1/p' <<<"${actual_swap}") else + # FreeBSD actual_memory=$(sysctl hw.physmem 2>/dev/null) [[ $? -eq 0 ]] && actual_memory=$(echo "${actual_memory}" \ | sed -e 's/^[^:=]*[:=][[:space:]]*//')
