From b5e556346593ccaf21181ea1fe05326ca5efe455 Mon Sep 17 00:00:00 2001 From: Matt Birkholz Date: Wed, 3 Feb 2016 21:25:08 -0700 Subject: [PATCH] src/etc/compile-svm.sh: Use max heap to cross-compile on i386. Running the secondary GC daemons after compiling a directory helps, but 10000KiW is still too small. Cross-compilation of edwin/snr hangs unless 12000KiW can be had. --- src/etc/compile-svm.sh | 29 ++++++++++++++++++----------- src/etc/compile.scm | 4 +++- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/src/etc/compile-svm.sh b/src/etc/compile-svm.sh index a14de03cf..e438fdc54 100755 --- a/src/etc/compile-svm.sh +++ b/src/etc/compile-svm.sh @@ -30,10 +30,13 @@ set -e . etc/functions.sh +HOST_ARCH=`echo "(display microcode-id/compiled-code-type)" \ + | ${@} --batch-mode` + # To avoid miscuing GNU Emacs's compilation-mode. mydate () { - date "+%Y-%m-%d %H-%M-%S" + date "+%Y-%m-%d %H.%M.%S" } echo "# `mydate`: Remove the cross-compiler's bands and stash its products." @@ -107,15 +110,15 @@ if [ "${FAST}" ]; then # the host system is native, this will be much faster than using the # svm but will not compile by-procedures. - # Compilation of edwin/snr.bin aborted "out of memory" with --heap - # 9000 on i386. That is as large a heap as can be allocated with - # all.com onboard, but HEAP is for x-compiler.com which is a - # megaword smaller. - HEAP=10000 + if [ "$HOST_ARCH" = "i386" ]; then + HEAP="--heap 12000" + else + HEAP="" + fi echo "# `mydate`: Re-cross-compile everything." run_cmd "${@}" --batch-mode --library lib \ - --band x-compiler.com --heap ${HEAP} <