<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">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:<div><br></div><div>1. How to build llvm-gcc with ARM for various platforms?</div><div>2. How to use llvm-gcc to run llvm test suite on qemu, or some other ARM based netbooks.</div><div>3. Anything else of interest. :-)</div><div><div><br></div><div>Would someone step up and drive this please?</div><div><br></div><div>Thanks,</div><div><br></div><div>Evan</div><div><br><div><div>On Mar 12, 2009, at 8:30 AM, Misha Brukman wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">On Thu, Mar 12, 2009 at 6:17 AM, Dietmar Ebner <span dir="ltr"><<a href="mailto:ebner@complang.tuwien.ac.at">ebner@complang.tuwien.ac.at</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">On Mar 11, 2009, at 9:44 PM, Misha Brukman wrote:<br>
> The problem I've had is building an LLVM cross-compiler from Linux/<br>
> x86 to Linux/ARM (as has another llvm-dev poster).  Someone<br>
> mentioned to me off-list that he managed to get it to build, but I<br>
> haven't been able to reproduce the build using his instructions<br>
> (I'll post my results in another thread).<br>
<br>
</div>I've been successfully experimenting with an arm-softfloat-linux-gnu<br>
cross-compiler at the time of llvm 2.1. The easiest way to get this<br>
working is to use Dan Kegel's crosstool to build a regular gcc<br>
toolchain. This will give you binutils, libgcc, and glibc, which you<br>
will need anyway.</blockquote><div><br>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:<br>
<br>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<br>
<br>../../../../src/llvm-gcc4.2-2.5.source/gcc/config/arm/<a href="http://arm.md:4788/">arm.md:4788</a>: error: ‘MACHO_DYNAMIC_NO_PIC_P’ undeclared here (not in a function)<br><br>This tells me there are some Darwin-specific bits in <a href="http://arm.md/">arm.md</a> 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.<br>
<br>If any ARM/GCC experts know how to fix <a href="http://arm.md/">arm.md</a> to not refer to Darwin-specific macros, that would be great, too.<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Building llvm-gcc was relatively painless. The only problem I've<br>
encountered was that my target had no hardware floating point support<br>
and the endianess for the softfloat implementation (libgcc) differed<br>
from integer endianess, which required some patches at the llvm side.<br>
I have not checked if this is still necessary. If you run into the<br>
same problems, I would be happy to share the patch (which I have<br>
updated to llvm 2.4 at some point).</blockquote><div><br>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.  :-)<br>
<br>Thanks,<br>Misha<br></div></div>
<span><llvm-arm-crosstool.sh></span>_______________________________________________<br>LLVM Developers mailing list<br><a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu">http://llvm.cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br></blockquote></div><br></div></div></body></html>