wiki:CrossCompiling

Version 1 (modified by rme, 3 years ago) (diff)

--

Cross Compiling

Notes on setting up for cross-compilation using Linux/ARM as an example.

Put the following forms into a .lisp file and load it to set up the cross-compiler.

(require-update-modules *arm-compiler-modules* t)
(require-update-modules *arm-compiler-backend-modules* t)
(require-update-modules *arm-xdev-modules* t)
(defpackage "ARM-LINUX")
(load "ccl:lib;ffi-linuxarm")
(require-update-modules *arm-xload-modules* t)
(setup-arm-ftd (find-backend :linuxarm))

Grab the interfaces for the target of interest and put them in the usual place ccl directory. In the Linux/ARM case, that would be ccl:arm-headers;. If your host uses different byte order than the target, you might have to set up some sort of cross-interfaces (left as an exercise for the reader).

Actually compile:

(cross-xload-level-0 :linuxarm :force)
(cross-compile-ccl :linuxarm t)