Subject: Cross compilation fails

From: Ben Gamari <[email-masked]>
Date: Fri, 20 Oct 2017 20:45:24 -0400

While attempting to cross-compile guile for Linux on ARM from Linux on
amd64 I'm seeing the following error,

$ ./configure --disable-static --disable-dependency-tracking --build=x86_64-unknown-linux-gnu --host=arm-unknown-linux-gnueabihf --target=arm-unknown-linux-gnueabihf GUILE_FOR_BUILD=/nix/store/3a8vr1p51dnpz3rdpiq5kccl4cima9xs-guile-2.2.0/bin/guile CC_FOR_BUILD=gcc
$ make -j16
...
make[2]: Entering directory '/home/ben/block-eng/guile-2.2.0/module'
  GUILEC language/elisp/boot.go
;;; note: source file /home/ben/block-eng/guile-2.2.0/module/language/elisp/spec.scm
;;;       newer than compiled /nix/store/3a8vr1p51dnpz3rdpiq5kccl4cima9xs-guile-2.2.0/lib/guile/2.2/ccache/language/elisp/spec.go
;;; note: source file /home/ben/block-eng/guile-2.2.0/module/language/elisp/compile-tree-il.scm
;;;       newer than compiled /nix/store/3a8vr1p51dnpz3rdpiq5kccl4cima9xs-guile-2.2.0/lib/guile/2.2/ccache/language/elisp/compile-tree-il.go
;;; note: source file /home/ben/block-eng/guile-2.2.0/module/language/elisp/bindings.scm
;;;       newer than compiled /nix/store/3a8vr1p51dnpz3rdpiq5kccl4cima9xs-guile-2.2.0/lib/guile/2.2/ccache/language/elisp/bindings.go
;;; note: source file /home/ben/block-eng/guile-2.2.0/module/srfi/srfi-8.scm
;;;       newer than compiled /nix/store/3a8vr1p51dnpz3rdpiq5kccl4cima9xs-guile-2.2.0/lib/guile/2.2/ccache/srfi/srfi-8.go
;;; note: source file /home/ben/block-eng/guile-2.2.0/module/language/elisp/runtime.scm
;;;       newer than compiled /nix/store/3a8vr1p51dnpz3rdpiq5kccl4cima9xs-guile-2.2.0/lib/guile/2.2/ccache/language/elisp/runtime.go
;;; note: source file /home/ben/block-eng/guile-2.2.0/module/language/elisp/parser.scm
;;;       newer than compiled /nix/store/3a8vr1p51dnpz3rdpiq5kccl4cima9xs-guile-2.2.0/lib/guile/2.2/ccache/language/elisp/parser.go
;;; note: source file /home/ben/block-eng/guile-2.2.0/module/language/elisp/lexer.scm
;;;       newer than compiled /nix/store/3a8vr1p51dnpz3rdpiq5kccl4cima9xs-guile-2.2.0/lib/guile/2.2/ccache/language/elisp/lexer.go
;;; note: source file /home/ben/block-eng/guile-2.2.0/module/ice-9/binary-ports.scm
;;;       newer than compiled /nix/store/3a8vr1p51dnpz3rdpiq5kccl4cima9xs-guile-2.2.0/lib/guile/2.2/ccache/ice-9/binary-ports.go
;;; note: source file /home/ben/block-eng/guile-2.2.0/module/language/value/spec.scm
;;;       newer than compiled /nix/store/3a8vr1p51dnpz3rdpiq5kccl4cima9xs-guile-2.2.0/lib/guile/2.2/ccache/language/value/spec.go
;;; note: source file /home/ben/block-eng/guile-2.2.0/module/language/tree-il/spec.scm
;;;       newer than compiled /nix/store/3a8vr1p51dnpz3rdpiq5kccl4cima9xs-guile-2.2.0/lib/guile/2.2/ccache/language/tree-il/spec.go
;;; note: source file /home/ben/block-eng/guile-2.2.0/module/language/tree-il/compile-cps.scm
;;;       newer than compiled /nix/store/3a8vr1p51dnpz3rdpiq5kccl4cima9xs-guile-2.2.0/lib/guile/2.2/ccache/language/tree-il/compile-cps.go
;;; note: source file /home/ben/block-eng/guile-2.2.0/module/language/tree-il/analyze.scm
;;;       newer than compiled /nix/store/3a8vr1p51dnpz3rdpiq5kccl4cima9xs-guile-2.2.0/lib/guile/2.2/ccache/language/tree-il/analyze.go
;;; note: source file /home/ben/block-eng/guile-2.2.0/module/language/cps/spec.scm
;;;       newer than compiled /nix/store/3a8vr1p51dnpz3rdpiq5kccl4cima9xs-guile-2.2.0/lib/guile/2.2/ccache/language/cps/spec.go
;;; note: source file /home/ben/block-eng/guile-2.2.0/module/language/cps/compile-bytecode.scm
;;;       newer than compiled /nix/store/3a8vr1p51dnpz3rdpiq5kccl4cima9xs-guile-2.2.0/lib/guile/2.2/ccache/language/cps/compile-bytecode.go
;;; note: source file /home/ben/block-eng/guile-2.2.0/module/language/cps/slot-allocation.scm
;;;       newer than compiled /nix/store/3a8vr1p51dnpz3rdpiq5kccl4cima9xs-guile-2.2.0/lib/guile/2.2/ccache/language/cps/slot-allocation.go
;;; note: source file /home/ben/block-eng/guile-2.2.0/module/language/cps/closure-conversion.scm
;;;       newer than compiled /nix/store/3a8vr1p51dnpz3rdpiq5kccl4cima9xs-guile-2.2.0/lib/guile/2.2/ccache/language/cps/closure-conversion.go
;;; note: source file /home/ben/block-eng/guile-2.2.0/module/language/cps/handle-interrupts.scm
;;;       newer than compiled /nix/store/3a8vr1p51dnpz3rdpiq5kccl4cima9xs-guile-2.2.0/lib/guile/2.2/ccache/language/cps/handle-interrupts.go
;;; note: source file /home/ben/block-eng/guile-2.2.0/module/language/cps/reify-primitives.scm
;;;       newer than compiled /nix/store/3a8vr1p51dnpz3rdpiq5kccl4cima9xs-guile-2.2.0/lib/guile/2.2/ccache/language/cps/reify-primitives.go
;;; note: source file /home/ben/block-eng/guile-2.2.0/module/language/cps/split-rec.scm
;;;       newer than compiled /nix/store/3a8vr1p51dnpz3rdpiq5kccl4cima9xs-guile-2.2.0/lib/guile/2.2/ccache/language/cps/split-rec.go
;;; note: source file /home/ben/block-eng/guile-2.2.0/module/system/vm/assembler.scm
;;;       newer than compiled /nix/store/3a8vr1p51dnpz3rdpiq5kccl4cima9xs-guile-2.2.0/lib/guile/2.2/ccache/system/vm/assembler.go
;;; note: source file /home/ben/block-eng/guile-2.2.0/module/system/vm/linker.scm
;;;       newer than compiled /nix/store/3a8vr1p51dnpz3rdpiq5kccl4cima9xs-guile-2.2.0/lib/guile/2.2/ccache/system/vm/linker.go
;;; note: source file /home/ben/block-eng/guile-2.2.0/module/language/bytecode/spec.scm
;;;       newer than compiled /nix/store/3a8vr1p51dnpz3rdpiq5kccl4cima9xs-guile-2.2.0/lib/guile/2.2/ccache/language/bytecode/spec.go
;;; note: source file /home/ben/block-eng/guile-2.2.0/module/language/elisp/runtime/function-slot.scm
;;;       newer than compiled /nix/store/3a8vr1p51dnpz3rdpiq5kccl4cima9xs-guile-2.2.0/lib/guile/2.2/ccache/language/elisp/runtime/function-slot.go
;;; note: source file /home/ben/block-eng/guile-2.2.0/module/language/elisp/runtime/value-slot.scm
;;;       newer than compiled /nix/store/3a8vr1p51dnpz3rdpiq5kccl4cima9xs-guile-2.2.0/lib/guile/2.2/ccache/language/elisp/runtime/value-slot.go
Backtrace:
;;; note: source file /home/ben/block-eng/guile-2.2.0/module/system/repl/debug.scm
;;;       newer than compiled /nix/store/3a8vr1p51dnpz3rdpiq5kccl4cima9xs-guile-2.2.0/lib/guile/2.2/ccache/system/repl/debug.go
;;; note: source file /home/ben/block-eng/guile-2.2.0/module/system/vm/frame.scm
;;;       newer than compiled /nix/store/3a8vr1p51dnpz3rdpiq5kccl4cima9xs-guile-2.2.0/lib/guile/2.2/ccache/system/vm/frame.go
;;; note: source file /home/ben/block-eng/guile-2.2.0/module/system/vm/disassembler.scm
;;;       newer than compiled /nix/store/3a8vr1p51dnpz3rdpiq5kccl4cima9xs-guile-2.2.0/lib/guile/2.2/ccache/system/vm/disassembler.go
;;; note: source file /home/ben/block-eng/guile-2.2.0/module/ice-9/rdelim.scm
;;;       newer than compiled /nix/store/3a8vr1p51dnpz3rdpiq5kccl4cima9xs-guile-2.2.0/lib/guile/2.2/ccache/ice-9/rdelim.go
;;; note: source file /home/ben/block-eng/guile-2.2.0/module/ice-9/pretty-print.scm
;;;       newer than compiled /nix/store/3a8vr1p51dnpz3rdpiq5kccl4cima9xs-guile-2.2.0/lib/guile/2.2/ccache/ice-9/pretty-print.go
;;; note: source file /home/ben/block-eng/guile-2.2.0/module/system/vm/inspect.scm
;;;       newer than compiled /nix/store/3a8vr1p51dnpz3rdpiq5kccl4cima9xs-guile-2.2.0/lib/guile/2.2/ccache/system/vm/inspect.go
In scripts/compile.scm:
   251:26 19 (_ _)
In system/base/target.scm:
     57:6 18 (with-target _ _)
In system/base/compile.scm:
   139:28 17 (compile-file "language/elisp/boot.el" #:output-file _ # ?)
In system/base/language.scm:
   110:30 16 (default-environment _)
    62:11 15 (lookup-language elisp)
In ice-9/boot-9.scm:
  2711:10 14 (_ (language elisp spec) _ _ #:ensure _)
  2979:16 13 (try-module-autoload _ _)
   2309:4 12 (save-module-excursion _)
  2999:22 11 (_)
In unknown file:
          10 (primitive-load-path "language/elisp/spec" #<procedure ?>)
In system/base/compile.scm:
    165:4  9 (compile-and-load _ #:from _ #:to _ #:env _ #:opts _ # _)
   235:18  8 (read-and-compile #<input: language/elisp/boot.el 14> # ?)
   183:32  7 (compile-fold (#<procedure compile-tree-il (a b c)>) (?) ?)
In ice-9/eval.scm:
    163:9  6 (_ #(#(#<directory (language elisp compile-tree-il)?>) ?))
In ice-9/boot-9.scm:
    152:2  5 (with-fluid* _ _ _)
In ice-9/eval.scm:
    619:8  4 (_ #(#(#(#(#(#(#(#(#(#(#<di?>) ?) ?) ?) ?) ?) ?) ?) ?) ?))
In system/base/compile.scm:
    255:6  3 (compile _ #:from _ #:to _ #:env _ #:opts _)
   183:32  2 (compile-fold _ #<tree-il (seq (call (@ (language elis?> ?)
In ice-9/eval.scm:
   293:34  1 (_ #(#(#<directory (language bytecode spec) 31665a0>) ?))
In unknown file:
           0 (load-thunk-from-memory #vu8(127 69 76 70 1 1 1 255 0 ?))

ERROR: In procedure load-thunk-from-memory:
ERROR: In procedure load-thunk-from-memory: ELF file does not have native word size
Makefile:2263: recipe for target 'language/elisp/boot.go' failed
make[2]: *** [language/elisp/boot.go] Error 1