From: Alastair Bridgewater Date: Sun, 12 Apr 2009 14:03:08 +0000 (+0000) Subject: 1.0.27.7: Win32 build fix X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=eb1a9840ad927f3d24a08618e0861cffe7057bbd;p=sbcl.git 1.0.27.7: Win32 build fix On Win32, the default cross-compilation host is SBCL with a --sysinit NUL --userinit NUL. Unfortunately, SBCL itself doesn't recognize NUL as a valid filename as it's actually a DOS device name and there's a separate API to check for them. The least losing workaround is to use a real file with known-harmless content for userinit and sysinit, and the simplest choice is version.lisp-expr. This changes makes it possible to build on Win32 without specifying a host lisp. --- diff --git a/make.sh b/make.sh index 51a36cc..12e7761 100755 --- a/make.sh +++ b/make.sh @@ -65,7 +65,14 @@ if [ "$OSTYPE" = "cygwin" -o "$OSTYPE" = "msys" ] ; then else DEVNULL=/dev/null fi -SBCL_XC_HOST="${1:-sbcl --disable-debugger --userinit $DEVNULL --sysinit $DEVNULL}" +# The classic form here was to use --userinit $DEVNULL --sysinit +# $DEVNULL, but that doesn't work on Win32 because SBCL doesn't handle +# device names properly. We still need $DEVNULL to be NUL on Win32 +# because it's used elsewhere (such as canonicalize-whitespace), so we +# need an alternate solution for the init file overrides. It turns +# out that version.lisp-expr has no side effects from evaluation, so +# we may as well use that. +SBCL_XC_HOST="${1:-sbcl --disable-debugger --userinit version.lisp-expr --sysinit version.lisp-expr}" export DEVNULL export SBCL_XC_HOST echo //SBCL_XC_HOST=\"$SBCL_XC_HOST\" diff --git a/version.lisp-expr b/version.lisp-expr index abd0218..5d1a5e3 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"1.0.27.6" +"1.0.27.7"