[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [MIT-Scheme-devel] [commit 13b5bca] Fix new build to cross from 9.1.
From: |
Taylor R Campbell |
Subject: |
Re: [MIT-Scheme-devel] [commit 13b5bca] Fix new build to cross from 9.1.1. |
Date: |
Sun, 23 Feb 2014 02:32:47 +0000 |
User-agent: |
IMAIL/1.21; Edwin/3.116; MIT-Scheme/9.1.99 |
I just pushed changes to fix or work around the following problems:
1. Floating-point comparisons spuriously trapped on i386.
(Fix: Use FUCOM[P], not FCOM[P] or FTST, in the generated code.)
2. Build was broken from 9.1.1.
(Temporary kludge: bake a fresh runtime into the build tools.)
3. Cross-compile didn't convert fni->bci so install failed.
(Fix: Do it.)
All tests pass now on NetBSD in the following configurations:
amd64 (from 9.1.1/amd64)
i386 (from 9.1.1/i386; with CFLAGS=-m32, AS_FLAGS=--32)
svm1 (from 9.1.1/amd64; `make all-native', not compile-svm.sh)
For the native builds, a full build takes about five minutes on my
laptop (8-thread Ivy Bridge i7 on an SSD with `make -j12', although 12
jobs is overkill out of habit -- we can't take advantage of more than
about six at a time). I didn't measure svm1 but it was well under an
hour.
Haven't gotten a liarc build to work with `make all-native' instead of
the crufty shell scripts, but I don't think it's far off, and that
should be able to take advantage of as many CPUs as you have.
Cross-compilation is still a second-class citizen: it requires
compile-by-procedures to be disabled, it doesn't actually work across
different machine architectures (just native<->svm on the same
machine), and the crsend phase is painfully slow (can be parallelized,
but I don't think that complexity is worth putting in the makefile).
But we're making progress.