[Openmcl-devel] cross-compiling for ia32

Gary Byers gb at clozure.com
Fri Nov 9 01:41:52 UTC 2007


One thing that probably isn't relevant but may soon be:

The .cdb files that store foreign function/type information contain
16- ,32-, and 64-bit words (both in the encoded data that they contain
and in the metainfomation that they use for lookup.)  These words are
just stored in host byte-order, so to cross-compile between a host and
target of different endianness you have to do something like:

- generate a set of .ffi files on/for the target system (:libc or some
   subset of it)

- copy them to the host

- do the PARSE-STANDARD-FFI-FILES step on the host, something like:

? (require "PARSE-FFI")

? (ccl::parse-standard-ffi-files :libc :darwinx8632)


At some point, cross-compilation will need access to the interfaces;
Matt would have a better idea than I do how near/far away that point
is.  In the long run, it'd be nice to be able to cross-compile from
any supported host to any supported target; in the near term, it's
probably more important to be able to cross compile to IA32 from
-some- host, and later figure out whether that can be made more
general.

On Thu, 8 Nov 2007, Greg Pfeil wrote:

> I figured I’d poke around with the ia32 branch of CCL, and started trying to 
> get a cross-compiler going, using the docs here: 
> http://trac.clozure.com/openmcl/wiki/PortToIA-32#Bootstrappingnotes
>
> It took me way too long to realize that the problem I’m having is not because 
> the docs are wrong, but because they assume I’m building on an x86-64 
> machine. I only have PPC and x86-32 on hand.
>
> So, is there any way for me to go about building a cross-compiler for x86-32 
> on PPC, or do I need to buy a new laptop in order to port CCL to my old 
> laptop?


More information about the Openmcl-devel mailing list