Hi,<br><br>  So x86 might not work after all, because you can run into this problem:<br><br><a href="http://lists.cs.uiuc.edu/pipermail/llvmdev/2009-December/027999.html">http://lists.cs.uiuc.edu/pipermail/llvmdev/2009-December/027999.html</a><br>
<br>for which there is no workaround.<br><br>                                    Zoltan<br><br><div class="gmail_quote">On Wed, Dec 23, 2009 at 7:59 PM, Zoltan Varga <span dir="ltr">&lt;<a href="mailto:vargaz@gmail.com">vargaz@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi,<div class="im"><br><br>This seems to be caused by MONO_ARCH_LLVM_SUPPORTED not being set,<br>
</div><div class="gmail_quote"><div class="im"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

bringing me back to a previous question: is Mono + LLVM supported on<br>
32-bit x86? As I see this:<br></blockquote></div><div><br>This should be fixed now in SVN. LLVM is not yet supported on any platform, because<br>it is still experimental code, but it should mostly work on x86.<br><font color="#888888"><br>
                     Zoltan<br>
</font></div><div><div></div><div class="h5"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
17:42|melis@juggle2:~/c/mono-svn/mono/mono/mini&gt; grep<br>
MONO_ARCH_LLVM_SUPPORTED *<br>
mini-amd64.h:#define MONO_ARCH_LLVM_SUPPORTED 1<br>
mini-arm.h:#define MONO_ARCH_LLVM_SUPPORTED 1<br>
<br>
<br>
Paul<br>
<div><br>
&gt;<br>
&gt;             Zoltan<br>
&gt;<br>
&gt; On Wed, Dec 23, 2009 at 12:04 PM, Paul Melis<br>
&gt; &lt;<a href="mailto:mono-devel@assumetheposition.nl" target="_blank">mono-devel@assumetheposition.nl</a><br>
</div><div>&gt; &lt;mailto:<a href="mailto:mono-devel@assumetheposition.nl" target="_blank">mono-devel@assumetheposition.nl</a>&gt;&gt; wrote:<br>
&gt;<br>
</div><div>&gt;     [Resending as it only went to Zoltan]<br>
&gt;<br>
&gt;     -------- Original Message --------<br>
&gt;     Subject:        Re: [Mono-dev] LLVM backend won&#39;t compile<br>
&gt;     Date:   Wed, 23 Dec 2009 11:49:53 +0100<br>
&gt;     From:   Paul Melis &lt;<a href="mailto:mono-devel@assumetheposition.nl" target="_blank">mono-devel@assumetheposition.nl</a><br>
</div><div>&gt;     &lt;mailto:<a href="mailto:mono-devel@assumetheposition.nl" target="_blank">mono-devel@assumetheposition.nl</a>&gt;&gt;<br>
</div><div>&gt;     To:     Zoltan Varga &lt;<a href="mailto:vargaz@gmail.com" target="_blank">vargaz@gmail.com</a> &lt;mailto:<a href="mailto:vargaz@gmail.com" target="_blank">vargaz@gmail.com</a>&gt;&gt;<br>
&gt;     References:     &lt;<a href="mailto:4B2FADE6.5070902@assumetheposition.nl" target="_blank">4B2FADE6.5070902@assumetheposition.nl</a><br>
</div><div>&gt;     &lt;mailto:<a href="mailto:4B2FADE6.5070902@assumetheposition.nl" target="_blank">4B2FADE6.5070902@assumetheposition.nl</a>&gt;&gt;<br>
&gt;     &lt;<a href="mailto:295e750a0912210927q6f5ad07djf672ea87f0e006c7@mail.gmail.com" target="_blank">295e750a0912210927q6f5ad07djf672ea87f0e006c7@mail.gmail.com</a><br>
</div><div>&gt;     &lt;mailto:<a href="mailto:295e750a0912210927q6f5ad07djf672ea87f0e006c7@mail.gmail.com" target="_blank">295e750a0912210927q6f5ad07djf672ea87f0e006c7@mail.gmail.com</a>&gt;&gt;<br>
&gt;     &lt;<a href="mailto:4B2FB6AB.5030604@assumetheposition.nl" target="_blank">4B2FB6AB.5030604@assumetheposition.nl</a><br>
</div>&gt;     &lt;mailto:<a href="mailto:4B2FB6AB.5030604@assumetheposition.nl" target="_blank">4B2FB6AB.5030604@assumetheposition.nl</a>&gt;&gt;<br>
<div>&gt;     &lt;<a href="mailto:CAE38A17-05D9-4F57-94E2-A482F4890078@novell.com" target="_blank">CAE38A17-05D9-4F57-94E2-A482F4890078@novell.com</a><br>
</div>&gt;     &lt;mailto:<a href="mailto:CAE38A17-05D9-4F57-94E2-A482F4890078@novell.com" target="_blank">CAE38A17-05D9-4F57-94E2-A482F4890078@novell.com</a>&gt;&gt;<br>
&gt;     &lt;<a href="mailto:4B311727.3000704@assumetheposition.nl" target="_blank">4B311727.3000704@assumetheposition.nl</a><br>
&gt;     &lt;mailto:<a href="mailto:4B311727.3000704@assumetheposition.nl" target="_blank">4B311727.3000704@assumetheposition.nl</a>&gt;&gt;<br>
&gt;     &lt;<a href="mailto:295e750a0912221101w2dc4898cn3353e62dd393dd40@mail.gmail.com" target="_blank">295e750a0912221101w2dc4898cn3353e62dd393dd40@mail.gmail.com</a><br>
&gt;     &lt;mailto:<a href="mailto:295e750a0912221101w2dc4898cn3353e62dd393dd40@mail.gmail.com" target="_blank">295e750a0912221101w2dc4898cn3353e62dd393dd40@mail.gmail.com</a>&gt;&gt;<br>
<div>&gt;<br>
&gt;<br>
&gt;<br>
&gt;     Right, I just tried compiling against LLVM 2.6 and I get the following<br>
&gt;     linker error:<br>
&gt;<br>
&gt;     [...]<br>
&gt;     make[3]: Entering directory<br>
&gt;     `/home/melis/c/mono-2.6-svn/mono/mono/mini&#39;<br>
&gt;     make  all-am<br>
&gt;     make[4]: Entering directory<br>
&gt;     `/home/melis/c/mono-2.6-svn/mono/mono/mini&#39;<br>
</div>&gt;     LD    <a href="http://libmono.la" target="_blank">libmono.la</a> &lt;<a href="http://libmono.la" target="_blank">http://libmono.la</a>&gt;<br>
<div><div></div><div>&gt;     .libs/mini-trampolines.o: In function<br>
&gt;     `mono_create_llvm_imt_trampoline&#39;:<br>
&gt;     /home/melis/c/mono-2.6-svn/mono/mono/mini/mini-trampolines.c:1377:<br>
&gt;     undefined reference to `mono_arch_get_llvm_imt_trampoline&#39;<br>
&gt;     /usr/lib/gcc/i686-pc-linux-gnu/4.3.4/../../../../i686-pc-linux-gnu/bin/ld:<br>
&gt;     .libs/libmono.so.0.0.0: hidden symbol<br>
&gt;     `mono_arch_get_llvm_imt_trampoline&#39; isn&#39;t defined<br>
&gt;     /usr/lib/gcc/i686-pc-linux-gnu/4.3.4/../../../../i686-pc-linux-gnu/bin/ld:<br>
&gt;     final link failed: Nonrepresentable section on output<br>
&gt;<br>
&gt;     That symbol seems to exist only in the AMD64 code:<br>
&gt;<br>
&gt;     11:47|melis@juggle2:~/c/mono-2.6-svn/mono&gt; grep<br>
&gt;     mono_arch_get_llvm_imt_trampoline mono/mini/*.c<br>
&gt;     mono/mini/mini-trampolines.c:    return<br>
&gt;     mono_arch_get_llvm_imt_trampoline (domain, m, vt_offset);<br>
&gt;     mono/mini/tramp-amd64.c:mono_arch_get_llvm_imt_trampoline (MonoDomain<br>
&gt;     *domain, MonoMethod *m, int vt_offset)<br>
&gt;<br>
&gt;     Is Mono&#39;s LLVM support only available on x86_64?<br>
&gt;<br>
&gt;     Paul<br>
&gt;<br>
&gt;<br>
&gt;     Zoltan Varga wrote:<br>
&gt;     &gt; Hi,<br>
&gt;     &gt;<br>
&gt;     &gt;   mono 2.6 should work with llvm 2.6, mono svn can work with<br>
&gt;     llvm 2.6/svn.<br>
&gt;     &gt;<br>
&gt;     &gt;                     Zoltan<br>
&gt;     &gt;<br>
&gt;     &gt; On Tue, Dec 22, 2009 at 7:59 PM, Paul Melis<br>
&gt;     &gt; &lt;<a href="mailto:mono-devel@assumetheposition.nl" target="_blank">mono-devel@assumetheposition.nl</a><br>
&gt;     &lt;mailto:<a href="mailto:mono-devel@assumetheposition.nl" target="_blank">mono-devel@assumetheposition.nl</a>&gt;<br>
&gt;     &gt; &lt;mailto:<a href="mailto:mono-devel@assumetheposition.nl" target="_blank">mono-devel@assumetheposition.nl</a><br>
&gt;     &lt;mailto:<a href="mailto:mono-devel@assumetheposition.nl" target="_blank">mono-devel@assumetheposition.nl</a>&gt;&gt;&gt; wrote:<br>
&gt;     &gt;<br>
&gt;     &gt;     Miguel de Icaza wrote:<br>
&gt;     &gt;     &gt; Hello,<br>
&gt;     &gt;     &gt;<br>
&gt;     &gt;     &gt;     I noticed this problem on trunk, and I was fixing the<br>
&gt;     &gt;     Makefiles, but I forgot to commit the code before I left.<br>
&gt;     &gt;     &gt;<br>
&gt;     &gt;     &gt;     The fix is simple, just add the LLVM_CFLAGS to the<br>
&gt;     &gt;     Makefile.am&#39;s definitions.<br>
&gt;     &gt;     &gt;<br>
&gt;     &gt;     Zoltan seems to have committed a fix already. Btw, what<br>
&gt;     version of<br>
&gt;     &gt;     LLVM<br>
&gt;     &gt;     does Mono 2.6 require? It seems current LLVM svn is not<br>
&gt;     usable due to<br>
&gt;     &gt;     changed APIs<br>
&gt;     &gt;<br>
&gt;     &gt;     Paul<br>
&gt;     &gt;     &gt; On Dec 21, 2009, at 12:55 PM, Paul Melis wrote:<br>
&gt;     &gt;     &gt;<br>
&gt;     &gt;     &gt;<br>
&gt;     &gt;     &gt;&gt; Zoltan Varga wrote:<br>
&gt;     &gt;     &gt;&gt;<br>
&gt;     &gt;     &gt;&gt;&gt; Hi,<br>
&gt;     &gt;     &gt;&gt;&gt;<br>
&gt;     &gt;     &gt;&gt;&gt;    Btw,  I can&#39;t seem to find the switch to make to have it<br>
&gt;     &gt;     output the<br>
&gt;     &gt;     &gt;&gt;&gt;    command it&#39;s executing (for checking -I flags)...<br>
&gt;     &gt;     &gt;&gt;&gt;<br>
&gt;     &gt;     &gt;&gt;&gt;<br>
&gt;     &gt;     &gt;&gt;&gt; Its make V=1, just like with the linux kernel.<br>
&gt;     &gt;     &gt;&gt;&gt;<br>
&gt;     &gt;     &gt;&gt; Ah, didn&#39;t know that :)<br>
&gt;     &gt;     &gt;&gt;<br>
&gt;     &gt;     &gt;&gt; Well, it seems the llvm include path is missing:<br>
&gt;     &gt;     &gt;&gt;<br>
&gt;     &gt;     &gt;&gt; [...]<br>
&gt;     &gt;     &gt;&gt; make[4]: Entering directory<br>
&gt;     `/home/melis/c/mono-2.6.1/mono/mini&#39;<br>
&gt;     &gt;     &gt;&gt; ../../doltcompile /home/melis/local/bin/gcc<br>
&gt;     -DHAVE_CONFIG_H -I.<br>
&gt;     &gt;     &gt;&gt; -I../..   -DGC_LINUX_THREADS -D_GNU_SOURCE -D_REENTRANT<br>
&gt;     -DUSE_MMAP<br>
&gt;     &gt;     &gt;&gt; -DUSE_MUNMAP -D_FILE_OFFSET_BITS=64 -DUSE_COMPILER_TLS<br>
&gt;     -I../..<br>
&gt;     &gt;     &gt;&gt; -I../../libgc/include -pthread -I/usr/include/glib-2.0<br>
&gt;     &gt;     &gt;&gt; -I/usr/lib/glib-2.0/include     -g -O2 -fno-strict-aliasing<br>
&gt;     &gt;     &gt;&gt; -Wdeclaration-after-statement -g -Wall -Wunused<br>
&gt;     &gt;     -Wmissing-prototypes<br>
&gt;     &gt;     &gt;&gt; -Wmissing-declarations -Wstrict-prototypes<br>
&gt;      -Wmissing-prototypes<br>
&gt;     &gt;     &gt;&gt; -Wnested-externs -Wpointer-arith -Wno-cast-qual<br>
&gt;     -Wwrite-strings<br>
&gt;     &gt;     &gt;&gt; -mno-tls-direct-seg-refs -MT mini-llvm.lo -MD -MP -MF<br>
&gt;     &gt;     &gt;&gt; .deps/mini-llvm.Tpo -c -o mini-llvm.lo mini-llvm.c<br>
&gt;     &gt;     &gt;&gt; mini-llvm.c:14:25: error: llvm-c/Core.h: No such file or<br>
&gt;     directory<br>
&gt;     &gt;     &gt;&gt; mini-llvm.c:15:36: error: llvm-c/ExecutionEngine.h: No<br>
&gt;     such file or<br>
&gt;     &gt;     &gt;&gt; directory<br>
&gt;     &gt;     &gt;&gt; mini-llvm.c:17:27: error: mini-llvm-cpp.h: No such file or<br>
&gt;     &gt;     directory<br>
&gt;     &gt;     &gt;&gt; mini-llvm.c:23: error: expected specifier-qualifier-list<br>
&gt;     before<br>
&gt;     &gt;     &gt;&gt; &#39;LLVMModuleRef&#39;<br>
&gt;     &gt;     &gt;&gt; mini-llvm.c:39: error: expected specifier-qualifier-list<br>
&gt;     before<br>
&gt;     &gt;     &gt;&gt; &#39;LLVMValueRef&#39;<br>
&gt;     &gt;     &gt;&gt; [...]<br>
&gt;     &gt;     &gt;&gt;<br>
&gt;     &gt;     &gt;&gt; I do see the correct values in mono/mini/Makefile though:<br>
&gt;     &gt;     &gt;&gt;<br>
&gt;     &gt;     &gt;&gt; LLVM_CONFIG = /home/melis/llvm/bin/llvm-config<br>
&gt;     &gt;     &gt;&gt; LLVM_CXXFLAGS = -I/home/melis/llvm/include  -D_DEBUG<br>
&gt;     -D_GNU_SOURCE<br>
&gt;     &gt;     &gt;&gt; -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -O2<br>
&gt;     &gt;     -fomit-frame-pointer<br>
&gt;     &gt;     &gt;&gt; -fPIC<br>
&gt;     &gt;     &gt;&gt; LLVM_LDFLAGS = -L/home/melis/llvm/lib  -lpthread -lffi<br>
&gt;     -ldl -lm<br>
&gt;     &gt;     &gt;&gt; LLVM_LIBS = -L/home/melis/llvm/lib  -lpthread -lffi -ldl -lm<br>
&gt;     &gt;     &gt;&gt; -lLLVMX86CodeGen -lLLVMX86Info -lLLVMX86Disassembler<br>
&gt;     &gt;     -lLLVMSelectionDAG<br>
&gt;     &gt;     &gt;&gt; -lLLVMAsmPrinter -lLLVMJIT -lLLVMExecutionEngine<br>
&gt;     -lLLVMCodeGen<br>
&gt;     &gt;     &gt;&gt; -lLLVMScalarOpts -lLLVMTransformUtils -lLLVMipa<br>
&gt;     -lLLVMAnalysis<br>
&gt;     &gt;     &gt;&gt; -lLLVMTarget -lLLVMMC -lLLVMBitWriter -lLLVMCore<br>
&gt;     -lLLVMSupport<br>
&gt;     &gt;     &gt;&gt; -lLLVMSystem -lstdc++<br>
&gt;     &gt;     &gt;&gt;<br>
&gt;     &gt;     &gt;&gt; A bug in the build system?<br>
&gt;     &gt;     &gt;&gt;<br>
&gt;     &gt;     &gt;&gt; Paul<br>
&gt;     &gt;     &gt;&gt; _______________________________________________<br>
&gt;     &gt;     &gt;&gt; Mono-devel-list mailing list<br>
&gt;     &gt;     &gt;&gt; <a href="mailto:Mono-devel-list@lists.ximian.com" target="_blank">Mono-devel-list@lists.ximian.com</a><br>
&gt;     &lt;mailto:<a href="mailto:Mono-devel-list@lists.ximian.com" target="_blank">Mono-devel-list@lists.ximian.com</a>&gt;<br>
&gt;     &gt;     &lt;mailto:<a href="mailto:Mono-devel-list@lists.ximian.com" target="_blank">Mono-devel-list@lists.ximian.com</a><br>
&gt;     &lt;mailto:<a href="mailto:Mono-devel-list@lists.ximian.com" target="_blank">Mono-devel-list@lists.ximian.com</a>&gt;&gt;<br>
&gt;     &gt;     &gt;&gt; <a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br>
&gt;     &gt;     &gt;&gt;<br>
&gt;     &gt;     &gt;<br>
&gt;     &gt;     &gt;<br>
&gt;     &gt;     &gt;<br>
&gt;     &gt;<br>
&gt;     &gt;<br>
&gt;<br>
&gt;<br>
&gt;     _______________________________________________<br>
&gt;     Mono-devel-list mailing list<br>
&gt;     <a href="mailto:Mono-devel-list@lists.ximian.com" target="_blank">Mono-devel-list@lists.ximian.com</a><br>
&gt;     &lt;mailto:<a href="mailto:Mono-devel-list@lists.ximian.com" target="_blank">Mono-devel-list@lists.ximian.com</a>&gt;<br>
&gt;     <a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br>
&gt;<br>
&gt;<br>
<br>
</div></div></blockquote></div></div></div><br>
</blockquote></div><br>