[LLVMdev] Using LLVM as a crosscompiler

Koen Kooi koen at dominion.kabel.utwente.nl
Sun Apr 1 13:24:05 PDT 2007

Hash: SHA1

Reid Spencer schreef:
> On Sun, 2007-04-01 at 21:26 +0200, Koen Kooi wrote:
> Hi,
> After hearing Chris' talk at bossaconference I wanted to see if I could use LLVM (and/or
> llvm-gcc) as a crosscompiler for ARM. The documentation beautifully outlines how to build
> it for your host and how to crosscompile it, but not how to build it as a cross-compiler.
> So my question is: How should I build llvm and llvm-gcc4 to have it cross-compile from x86
> to ARM/EABI?
>> For the LLVM build, just build it on an x86 host and make sure the ARM
>> target is enabled. You can do that with the --enable-targets=ARM option
>> to configure. The default is to build all targets which will work fine
>> too.

OK, that's easy I already have that working :)

>> For the llvm-gcc build, you just build it like you would any GCC
>> cross-compiler. That is, you use the --target option on the configure
>> line for llvm-gcc. The value of the --target option should be the target
>> triple that you want to cross compile too. I don't know the details but
>> it should be something like --target=arm-iphone-darwin.

Is llvm-gcc4 a modified gcc? I have a big pile of patches to unbreak various part of gcc
4.1.x for ARM. E.g.
to make gcc stop emitting armv5te instructions for armv4t cpus. Will llvm-gcc4 require the
same patches.

>> This --target option in llvm-gcc will cause llvm-gcc to emit a
>> "target=arm-iphone-darwin" directive in the output to LLVM. This will
>> cause LLVM to select the ARM backend and any subtargets for
>> "iphone-darwin".
>> Please note, the "iphone-darwin" part is fictional. I don't know the
>> correct full target triple for your target but it at least starts with
>> "arm".

'xscale' would also be an option, but lets not get into un(der)documented features in gcc ;)

It would probably be 'arm-<target vendor>-linuxgnueabi' for the things I'm interested in
(The neo1973 phone for example).

After having dealt with gcc as crosscompiler for the past years I get the "It can't be
this easy to setup" feeling, but I'll find out tomorrow.

Thanks for your speedy replies!


Version: GnuPG v1.4.5 (Darwin)


More information about the llvm-dev mailing list