Subject: Re: bug#9192: Cross-compile for ARM

From: Dan Nicolaescu <[email-masked]>
Date: Mon, 29 Aug 2011 23:38:46 -0400

Stefan Monnier <[email-masked]> writes:

>> Is it a 'feature' or is it a bug?

BTW, the trunk should be a bit better now than the 23.x release in terms
of building.

> It's not a feature, but it's not a bug we find very important to fix.
> IOW I'd be happy to accept patches which make cross-compiling easier,
> but I won't write them myself and I would only accept them if they're
> clean enough.
>
> This said, I do remember someone posting on this list about a similar
> issue and making actual progress in this direction.  And if you want to
> try it, here are some things I know will need to be solved:
> - We build a few programs used only during compilation: prefix-args,

prefix-args has been removed from the trunk.

>   make-docfile, probably a few more (can't remember test-distrub, but
>   if we build such a thing, then it's most likely in the set as well).

We should just remove test-distrib.c ASAP, it doesn't seem that useful anymore.

>   You'll have to change the Makefile to compile those for the host
>   rather than for the target.
> - The Elisp files in lisp and leim need to be compiled by Emacs, so the
>   src/bootstrap-emacs should be built for the host rather than for
>   the target.
> - You'll either want to build without dumping (i.e. set CANNOT_DUMP), or

"temacs" now runs as expected, it should work better than setting
CANNOT_DUMP.
It starts up a bit slower, but it is just as usable as a dumped emacs
after that.

>   you'll want to split the dump step since it needs to be run on the
>   target (but in either case you can do the dump for src/bootstrap-emacs
>   since that runs on the host).  Builds using CANNOT_DUMP tend to have
>   various misfeatures because this is basically never used and hence
>   doesn't get much/any testing.
>
> Maybe the easiest way to approach the problem is to first do a normal
> build on the host (which builds src/bootstrap-emacs and compiles all the
> Elisp files), then "rm src/*.o", reconfigure for the target and compile
> src/temacs (and maybe afterwards do the `dump' on the target).