mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-24 12:20:20 +02:00
elisp: Fix cross-compilation support.
* module/system/base/target.scm (with-native-target): New exported procedure. * module/language/elisp/spec.scm: In the top-level body expression, call 'compile-and-load' within 'with-native-target' to compile native code. * module/language/elisp/compile-tree-il.scm (eval-when-compile, defmacro): Compile native code.
This commit is contained in:
parent
a44c2a679f
commit
a72e296176
3 changed files with 27 additions and 8 deletions
|
@ -1,6 +1,6 @@
|
|||
;;; Guile Emac Lisp
|
||||
|
||||
;; Copyright (C) 2001, 2009, 2010 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2001, 2009, 2010, 2018 Free Software Foundation, Inc.
|
||||
|
||||
;;;; This library is free software; you can redistribute it and/or
|
||||
;;;; modify it under the terms of the GNU Lesser General Public
|
||||
|
@ -23,6 +23,7 @@
|
|||
#:use-module (language elisp parser)
|
||||
#:use-module (system base language)
|
||||
#:use-module (system base compile)
|
||||
#:use-module (system base target)
|
||||
#:export (elisp))
|
||||
|
||||
(define-language elisp
|
||||
|
@ -31,5 +32,12 @@
|
|||
#:printer write
|
||||
#:compilers `((tree-il . ,compile-tree-il)))
|
||||
|
||||
(compile-and-load (%search-load-path "language/elisp/boot.el")
|
||||
#:from 'elisp)
|
||||
;; Compile and load the Elisp boot code for the native host
|
||||
;; architecture. We must specifically ask for native compilation here,
|
||||
;; because this module might be loaded in a dynamic environment where
|
||||
;; cross-compilation has been requested using 'with-target'. For
|
||||
;; example, this happens when cross-compiling Guile itself.
|
||||
(with-native-target
|
||||
(lambda ()
|
||||
(compile-and-load (%search-load-path "language/elisp/boot.el")
|
||||
#:from 'elisp)))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue