diff options
author | Ludovic Courtès <ludo@gnu.org> | 2017-12-22 16:57:54 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2017-12-22 17:00:33 +0100 |
commit | 988aa29238fca862c7e2cb55f15762a69b4c16ce (patch) | |
tree | 9cabff21ba10ec98d9baa115dd5515be73d2de2a | |
parent | deef64a739d868ed5fda4e55e387528c1b6c196b (diff) | |
download | guile-988aa29238fca862c7e2cb55f15762a69b4c16ce.tar.gz |
compile: Load language modules upfront.
Fixes a bug whereby "guild compile --target=arm-linux-gnueabihf
--from=elisp ... language/elisp/boot.el" would fail with an exception
from 'load-thunk-from-memory' while trying to load (language elisp spec)
from the guile-being-compiled instead of using that of the
guile-for-build.
The problem did not manifest with --from=scheme because (language scheme
spec) happened to be already loaded before we had changed %load-path.
* module/scripts/compile.scm (compile): Add calls to 'lookup-language'.
-rw-r--r-- | module/scripts/compile.scm | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/module/scripts/compile.scm b/module/scripts/compile.scm index 939fb2564..b4d6b31a5 100644 --- a/module/scripts/compile.scm +++ b/module/scripts/compile.scm @@ -1,6 +1,6 @@ ;;; Compile --- Command-line Guile Scheme compiler -*- coding: iso-8859-1 -*- -;; Copyright 2005, 2008-2011, 2013, 2014, 2015 Free Software Foundation, Inc. +;; Copyright 2005, 2008-2011, 2013, 2014, 2015, 2017 Free Software Foundation, Inc. ;; ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU Lesser General Public License @@ -29,6 +29,7 @@ ;;; Code: (define-module (scripts compile) + #:use-module ((system base language) #:select (lookup-language)) #:use-module ((system base compile) #:select (compile-file)) #:use-module (system base target) #:use-module (system base message) @@ -228,6 +229,13 @@ Report bugs to <~A>.~%" %guile-bug-report-address) (exit 0))) + ;; Load FROM and TO before we have changed the load path. That way, when + ;; cross-compiling Guile itself, we can be sure we're loading our own + ;; language modules and not those of the Guile being compiled, which may + ;; have incompatible .go files. + (lookup-language from) + (lookup-language to) + (set! %load-path (append load-path %load-path)) (set! %load-should-auto-compile #f) |