I can successfully build llvm 2.9 with MinGW64 now, by adding <span class="Apple-style-span" style="font-family: Simsun; font-size: medium; "><a name="pf_12"><tt>"LDFLAGS=-Wl,--stack,16777216" </tt></a></span>to configuration. LLVM "getting started" has the following tip but I was not aware of it.<div>
<span class="Apple-style-span" style="font-family: Simsun; font-size: medium; "><a name="pf_12"><br></a></span></div><div><span class="Apple-style-span" style="font-family: Simsun; font-size: medium; "><a name="pf_12">12. To compile SPU backend, you need to add <tt>"LDFLAGS=-Wl,--stack,16777216"</tt> to configure.</a></span><br>
<div><br><div class="gmail_quote">Thanks for your help, Takumi !</div><div class="gmail_quote"><br></div><div class="gmail_quote"><br></div><div class="gmail_quote">在 2011年5月16日 下午5:46,NAKAMURA Takumi <span dir="ltr"><<a href="mailto:geek4civic@gmail.com">geek4civic@gmail.com</a>></span>写道:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Chen, see <a href="http://llvm.org/docs/GettingStarted.html#pf_12" target="_blank">http://llvm.org/docs/GettingStarted.html#pf_12</a><br>

<font color="#888888"><br>
...Takumi<br>
</font><br>
ps. Excuse me, PE+ (aka pep) means "Executable file format for WIndows x64".<br>
<br>
2011/5/16 陈晓宇 <<a href="mailto:xychen0921@gmail.com">xychen0921@gmail.com</a>>:<br>
<div><div></div><div class="h5">> The stack trace:<br>
><br>
> Starting program:<br>
> C:\MinGW\msys\1.0\home\xchen\llvm-obj\lib\Target\CellSPU/../..<br>
> /../Debug/bin/tblgen.exe -I ../../../../llvm2.9/llvm-2.9/lib/Target/CellSPU<br>
> -I .<br>
> ./../../../llvm2.9/llvm-2.9/include -I<br>
> ../../../../llvm2.9/llvm-2.9/lib/Target -<br>
> gen-dag-isel -o tmp ../../../../llvm2.9/llvm-2.9/lib/Target/CellSPU/SPU.td<br>
> [New Thread 3852.0x1074]<br>
> Program received signal SIGSEGV, Segmentation fault.<br>
> 0x000000000049025a in FactorNodes (MatcherPtr=...)<br>
>     at<br>
> C:/MinGW/msys/1.0/home/xchen/llvm2.9/llvm-2.9/utils/TableGen/DAGISelMatch<br>
> erOpt.cpp:249<br>
> 249     static void FactorNodes(OwningPtr<Matcher> &MatcherPtr) {<br>
> (gdb) bt<br>
> #0  0x000000000049025a in FactorNodes (MatcherPtr=...)<br>
>     at<br>
> C:/MinGW/msys/1.0/home/xchen/llvm2.9/llvm-2.9/utils/TableGen/DAGISelMatch<br>
> erOpt.cpp:249<br>
> #1  0x00000000004902ff in FactorNodes (MatcherPtr=...)<br>
>     at<br>
> C:/MinGW/msys/1.0/home/xchen/llvm2.9/llvm-2.9/utils/TableGen/DAGISelMatch<br>
> erOpt.cpp:257<br>
> #2  0x00000000004902ff in FactorNodes (MatcherPtr=...)<br>
>     at<br>
> C:/MinGW/msys/1.0/home/xchen/llvm2.9/llvm-2.9/utils/TableGen/DAGISelMatch<br>
> erOpt.cpp:257<br>
> #3  0x00000000004902ff in FactorNodes (MatcherPtr=...)<br>
>     at<br>
> C:/MinGW/msys/1.0/home/xchen/llvm2.9/llvm-2.9/utils/TableGen/DAGISelMatch<br>
> erOpt.cpp:257<br>
> #4  0x00000000004902ff in FactorNodes (MatcherPtr=...)<br>
>     at<br>
> C:/MinGW/msys/1.0/home/xchen/llvm2.9/llvm-2.9/utils/TableGen/DAGISelMatch<br>
> erOpt.cpp:257<br>
> #5  0x00000000004902ff in FactorNodes (MatcherPtr=...)<br>
>     at<br>
> C:/MinGW/msys/1.0/home/xchen/llvm2.9/llvm-2.9/utils/TableGen/DAGISelMatch<br>
> erOpt.cpp:257<br>
> #6  0x00000000004902ff in FactorNodes (MatcherPtr=...)<br>
>     at<br>
> C:/MinGW/msys/1.0/home/xchen/llvm2.9/llvm-2.9/utils/TableGen/DAGISelMatch<br>
> erOpt.cpp:257<br>
> #7  0x00000000004902ff in FactorNodes (MatcherPtr=...)<br>
>     at<br>
> C:/MinGW/msys/1.0/home/xchen/llvm2.9/llvm-2.9/utils/TableGen/DAGISelMatch<br>
> erOpt.cpp:257<br>
> ... ...<br>
> ... ...<br>
>     at<br>
> C:/MinGW/msys/1.0/home/xchen/llvm2.9/llvm-2.9/utils/TableGen/DAGISelMatch<br>
> erOpt.cpp:257<br>
> #1061 0x00000000004902ff in FactorNodes (MatcherPtr=...)<br>
>     at<br>
> C:/MinGW/msys/1.0/home/xchen/llvm2.9/llvm-2.9/utils/TableGen/DAGISelMatch<br>
> erOpt.cpp:257<br>
> #1062 0x0000000000490395 in FactorNodes (MatcherPtr=...)<br>
>     at<br>
> C:/MinGW/msys/1.0/home/xchen/llvm2.9/llvm-2.9/utils/TableGen/DAGISelMatch<br>
> erOpt.cpp:267<br>
> #1063 0x000000000049172a in llvm::OptimizeMatcher (TheMatcher=0x689a5f0,<br>
>     CGP=...)<br>
>     at<br>
> C:/MinGW/msys/1.0/home/xchen/llvm2.9/llvm-2.9/utils/TableGen/DAGISelMatch<br>
> erOpt.cpp:512<br>
> #1064 0x0000000000480e3a in llvm::DAGISelEmitter::run (this=0x22f760,<br>
> OS=...)<br>
>     at<br>
> C:/MinGW/msys/1.0/home/xchen/llvm2.9/llvm-2.9/utils/TableGen/DAGISelEmitt<br>
> er.cpp:155<br>
> #1065 0x0000000000526188 in main (argc=11, argv=0x322520)<br>
>     at<br>
> C:/MinGW/msys/1.0/home/xchen/llvm2.9/llvm-2.9/utils/TableGen/TableGen.cpp<br>
> :318<br>
> Thanks.<br>
> 在 2011年5月16日 下午2:45,陈晓宇 <<a href="mailto:xychen0921@gmail.com">xychen0921@gmail.com</a>>写道:<br>
>><br>
>> Thanks for the response!<br>
>> I have tried using --build, the build failed and windows reported tblgen<br>
>> execution error, see attachment.<br>
>> I am not sure what you mean by PE+ executable, is that 64 bit executable?<br>
>> On my 64 bit PC, the g++ works well and a simple 64bit hello-world can run.<br>
>> Regards<br>
>><br>
>> 2011/5/16 NAKAMURA Takumi <<a href="mailto:geek4civic@gmail.com">geek4civic@gmail.com</a>><br>
>>><br>
>>> Chen,<br>
>>><br>
>>> 2011/5/13 陈晓宇 <<a href="mailto:xychen0921@gmail.com">xychen0921@gmail.com</a>>:<br>
>>> > ../llvm2.9/configure --prefix=/home/AutoESL/llvm-obj<br>
>>> >                             --host=x86_64-w64-mingw32<br>
>>> >                             --disable-multilib<br>
>>><br>
>>> Please try with "--build=x86_64-w64-mingw32", not "--host".<br>
>>><br>
>>> If you would still have any troubles, make sure your<br>
>>> x86_64-w64-g++.exe can generate correct PE+ executable.<br>
>>><br>
>>> And, please post your environments as below (could be gzip-ed if they<br>
>>> would be bigger);<br>
>>><br>
>>>  - config.log<br>
>>>  - Makefile.config<br>
>>>  - the log of "make VERBOSE=1"<br>
>>><br>
>>> Please note, Windows x64 support on llvm-(at least 2.9) would be<br>
>>> immature.<br>
>>> Feel free to ask us (on the list) if you got any troubles.<br>
>>><br>
>>> Thank you, ...Takumi<br>
>><br>
><br>
><br>
</div></div></blockquote></div><br></div></div>