[LLVMdev] Using LLVM to cross-compile ADA programs

Duncan Sands baldrick at free.fr
Thu Sep 9 10:41:07 PDT 2010

Hi Elisa,

> I'm trying to use LLVM 2.7 (running on a x86-32 platform) as cross compiler to build ADA programs that will run on a different target platform (PowerPc).

as far as I know no-one ever tried it.  You are in uncharted territory.

> So my question is: do these problems prevent us from using LLVM as cross-compiler for ADA programs? I suppose they don't, as they concern the "host" platform only, not the "target" platform. Is it correct?

The Ada front-end comes with a substantial run-time library, which needs to be
compiled for the target.  Compiling it is a good stress test for the compiler,
so it might fail by crashing the compiler even though a priori I don't see any
reason it shouldn't work.  For example, the run-time library makes use of
trampolines, which will need to be compiled correctly for the target machine,
but since LLVM now apparently supports trampolines on ppc (I think this was in
2.7 already), hopefully it will work.  I suggest you try, and report any
problems you come across.  I think it would be a good idea to first build a
C cross-compiler, to shake out any problems that are not Ada specific, before
trying to build an Ada cross-compiler.



PS: It's Ada not ADA - it's someone's name, not an acronym.
PPS: I'm not working on the llvm-gcc Ada front-end any more - Ada support has
moved to the dragonegg plugin (http://dragonegg.llvm.org).  Dragonegg does not
yet support ppc, though I plan this in the future.  Once it does, it should be
perfectly possible to cross-compile to ppc.

More information about the llvm-dev mailing list