Fix cross-compilation of Guile 3.0.11: https://codeberg.org/guile/guile/issues/88 --- a/module/system/base/target.scm +++ b/module/system/base/target.scm @@ -45,15 +45,13 @@ ;;; ;; Hacky way to get native pointer size without having to load (system -;; foreign). -(define-syntax %native-word-size - (lambda (stx) - (syntax-case stx () - (id (identifier? #'id) - (cond - ((< most-positive-fixnum (ash 1 32)) 4) - ((< most-positive-fixnum (ash 1 64)) 8) - (else (error "unexpected!" most-positive-fixnum))))))) +;; foreign). Note: Use the value of 'most-positive-fixnum' available at +;; run time, not a macro-expansion time, to ensure the correct value is +;; used when cross-compiling. +(define %native-word-size + (cond ((< most-positive-fixnum (ash 1 32)) 4) + ((< most-positive-fixnum (ash 1 64)) 8) + (else (error "unexpected!" most-positive-fixnum)))) (define %target-type (make-fluid %host-type)) (define %target-endianness (make-fluid (native-endianness)))