[LLVMdev] Consumer ARM platform suitable for LLVM development?

Evan Cheng echeng at apple.com
Thu Mar 12 10:54:00 PDT 2009


We absolutely need someone to drive this. Some of us who work on the  
ARM target are developing and testing our work on proprietary  
platforms. We can't share our infrastructure with the public. It would  
be nice if someone can figure out the following and document them:

1. How to build llvm-gcc with ARM for various platforms?
2. How to use llvm-gcc to run llvm test suite on qemu, or some other  
ARM based netbooks.
3. Anything else of interest. :-)

Would someone step up and drive this please?

Thanks,

Evan

On Mar 12, 2009, at 8:30 AM, Misha Brukman wrote:

> On Thu, Mar 12, 2009 at 6:17 AM, Dietmar Ebner <ebner at complang.tuwien.ac.at 
> > wrote:
> On Mar 11, 2009, at 9:44 PM, Misha Brukman wrote:
> > The problem I've had is building an LLVM cross-compiler from Linux/
> > x86 to Linux/ARM (as has another llvm-dev poster).  Someone
> > mentioned to me off-list that he managed to get it to build, but I
> > haven't been able to reproduce the build using his instructions
> > (I'll post my results in another thread).
>
> I've been successfully experimenting with an arm-softfloat-linux-gnu
> cross-compiler at the time of llvm 2.1. The easiest way to get this
> working is to use Dan Kegel's crosstool to build a regular gcc
> toolchain. This will give you binutils, libgcc, and glibc, which you
> will need anyway.
>
> I've been trying to build for the target arm-none-linux-gnueabi,  
> using the appropriate pre-built CodeSourcery toolchain, hence  
> avoiding building my own gcc crosstool prior to starting building  
> LLVM and LLVM-GCC.  LLVM builds just fine, it's building llvm-gcc  
> that gives me this error:
>
> gcc -c -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -W -Wall -Wwrite- 
> strings -Wstrict-prototypes -Wmissing-prototypes -DHAVE_CONFIG_H - 
> DGENERATOR_FILE -I. -Ibuild -I../../../../src/llvm-gcc4.2-2.5.source/ 
> gcc -I../../../../src/llvm-gcc4.2-2.5.source/gcc/build -I../../../../ 
> src/llvm-gcc4.2-2.5.source/gcc/../include -I../../../../src/llvm- 
> gcc4.2-2.5.source/gcc/../libcpp/include  -I../../../../src/llvm- 
> gcc4.2-2.5.source/gcc/../libdecnumber -I../libdecnumber -I/tmp/llvm- 
> project/install/x86_64-arm/llvm/include -I/tmp/llvm-project/src/ 
> llvm-2.5/include -DENABLE_LLVM -I/tmp/llvm-project/install/x86_64- 
> arm/llvm/include  -D_DEBUG  -D_GNU_SOURCE -D__STDC_LIMIT_MACROS - 
> D__STDC_CONSTANT_MACROS   -o build/gencondmd.o build/gencondmd.c
>
> ../../../../src/llvm-gcc4.2-2.5.source/gcc/config/arm/arm.md:4788:  
> error: ‘MACHO_DYNAMIC_NO_PIC_P’ undeclared here (not in a function)
>
> This tells me there are some Darwin-specific bits in arm.md which  
> shouldn't be there (MachO is Mac OS X-specific).  I'm using the  
> attached script llvm-arm-crosstool.sh to configure/build/install  
> LLVM and LLVM-GCC from the 2.5 release.  If anyone wants to try it  
> out and see if it works for them, I'd love to hear their experiences.
>
> If any ARM/GCC experts know how to fix arm.md to not refer to Darwin- 
> specific macros, that would be great, too.
>
> Building llvm-gcc was relatively painless. The only problem I've
> encountered was that my target had no hardware floating point support
> and the endianess for the softfloat implementation (libgcc) differed
> from integer endianess, which required some patches at the llvm side.
> I have not checked if this is still necessary. If you run into the
> same problems, I would be happy to share the patch (which I have
> updated to llvm 2.4 at some point).
>
> I would be interested in seeing your patch, if you wouldn't mind  
> sharing it.  Bonus points if you have a script similar to mine above  
> to simplify the entire process, or your notes/directions that I can  
> convert into an easy-to-run script.  :-)
>
> Thanks,
> Misha
> <llvm-arm-crosstool.sh>_______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20090312/b052a429/attachment.html>


More information about the llvm-dev mailing list