On 8 February 2011 17:34, Julian Brown julian@codesourcery.com wrote:
On Tue, 8 Feb 2011 11:22:32 +0000 Julian Brown julian@codesourcery.com wrote:
IIRC I couldn't figure out the magic incantation needed to do it last time I tried. I don't think the "--with-endian=xxx" option is supported for ARM. Possibly the way to do it is to configure for the "armeb-foo-eabi-bar" rather than "arm-foo-eabi-bar" target triplet. Of course you'll still need a big-endian C library, etc...
OTOH a quick web-search seems to suggest that building a big-endian ARM cross-compiler might just not be possible with vanilla sources.
A little more helpfully (:-)), I tried running crosstool-ng [1] to build a big-endian ARM cross-compiler, and it seems to work nicely (although I've not tested the resulting compiler beyond building "hello world" and seeing that it produced a big-endian executable). One caveat is that in-built configs for ARM only go up to GCC 4.4.5. I'm not sure how easy it is to add newer releases -- just pointing to a newer release tarball may or may not work.
(Note that one of the patches supplied with crosstool-ng provides the capability to compile a big-endian ARM toolchain: i.e., it looks like support for doing that *isn't* in vanilla sources after all, as I suspected.)
I guess you could use crosstool-ng to build a compiler & big-endian C library, then build a newer cross-compiler against the latter -- in theory at least.
I've attached the config I used to produce an (at least nominally) working build.
Thanks a lot! I'll give it a try.
Thanks, Ira
HTH,
Julian