<div dir="ltr"><div style>First, you are building lli, not clang.  If you build clang directly (make clang), you won't hit this.</div><div><br></div>Second, __register_frame is for registering DWARF unwind info.  It's currently under __GNUC__, since that usually implies linkage of libgcc, which provides that symbol.<div>
<br></div><div style>Patches and bugs for avoiding this under mingw when libgcc is using SEH for unwinding are welcome.</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jun 20, 2013 at 12:42 PM, Dongsheng Song <span dir="ltr"><<a href="mailto:dongsheng.song@gmail.com" target="_blank">dongsheng.song@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">SET PATH=C:\opt\python-2.7;C:\opt\cmake-2.8-win32\bin;C:\opt\gcc-4.8-win64\bin;C:\var\gnuwin32\bin<br>
SET LIT_USE_INTERNAL_SHELL=1<br>
<br>
rm -fr   C:\var\building\clang_3.3-gcc_4.8-win64<br>
mkdir -p C:\var\building\clang_3.3-gcc_4.8-win64<br>
cd       C:\var\building\clang_3.3-gcc_4.8-win64<br>
<br>
cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release<br>
-DLLVM_TARGETS_TO_BUILD=X86 ..\llvm-3.3<br>
mingw32-make VERBOSE=1 ENABLE_OPTIMIZED=1 DISABLE_ASSERTIONS=1 -j4<br>
<br>
I got the following building errors:<br>
<br>
[  6%] Built target LLVMSupport<br>
[  6%] Built target LLVMTableGen<br>
[  9%] Built target llvm-tblgen<br>
[  9%] Built target intrinsics_gen<br>
[ 12%] Built target LLVMCore<br>
[ 12%] Built target LLVMAsmParser<br>
[ 12%] Built target LLVMBitReader<br>
[ 12%] Built target LLVMIRReader<br>
[ 13%] Built target LLVMObject<br>
[ 16%] Built target LLVMMC<br>
[ 17%] Built target LLVMTarget<br>
[ 23%] Built target LLVMAnalysis<br>
[ 24%] Built target LLVMipa<br>
[ 26%] Built target LLVMTransformUtils<br>
[ 27%] Built target LLVMInstCombine<br>
[ 29%] Built target LLVMScalarOpts<br>
[ 30%] Built target LLVMObjCARCOpts<br>
[ 39%] Built target LLVMCodeGen<br>
[ 41%] Built target LLVMSelectionDAG<br>
[ 41%] Built target LLVMMCParser<br>
[ 42%] Built target LLVMAsmPrinter<br>
[ 42%] Built target LLVMBitWriter<br>
[ 43%] Built target LLVMInstrumentation<br>
[ 43%] Built target LLVMVectorize<br>
[ 45%] Built target LLVMipo<br>
[ 45%] Built target LLVMLinker<br>
[ 45%] Built target LLVMMCDisassembler<br>
[ 45%] Built target LLVMOption<br>
[ 46%] Built target LLVMDebugInfo<br>
[ 46%] Built target LLVMExecutionEngine<br>
[ 46%] Built target LLVMInterpreter<br>
[ 46%] Built target LLVMRuntimeDyld<br>
[ 47%] Built target LLVMJIT<br>
[ 47%] Built target LLVMMCJIT<br>
[ 47%] Built target X86CommonTableGen<br>
[ 47%] Built target LLVMX86Utils<br>
[ 47%] Built target LLVMX86AsmPrinter<br>
[ 47%] Built target LLVMX86Info<br>
[ 47%] Built target LLVMX86Desc<br>
[ 50%] Built target LLVMX86CodeGen<br>
[ 50%] Built target LLVMX86AsmParser<br>
[ 50%] Built target LLVMX86Disassembler<br>
[ 50%] Built target LLVMArchive<br>
[ 51%] Built target FileCheck<br>
[ 51%] Built target FileUpdate<br>
[ 51%] Built target count<br>
[ 51%] Built target not<br>
[ 51%] Built target yaml-bench<br>
[ 52%] Built target opt<br>
[ 52%] Built target llvm-as<br>
[ 52%] Built target llvm-dis<br>
[ 52%] Built target llvm-mc<br>
[ 52%] Built target llc<br>
[ 52%] Built target llvm-ranlib<br>
[ 52%] Built target llvm-ar<br>
[ 52%] Built target llvm-nm<br>
[ 52%] Built target llvm-size<br>
[ 52%] Built target llvm-cov<br>
[ 52%] Built target llvm-prof<br>
[ 52%] Built target llvm-link<br>
Linking CXX executable ..\..\bin\lli.exe<br>
..\..\lib\libLLVMMCJIT.a(SectionMemoryManager.cpp.obj):SectionMemoryManager.cpp:(.text+0x3b):<br>
undefined reference to `__register_frame'<br>
..\..\lib\libLLVMJIT.a(JIT.cpp.obj):JIT.cpp:(.text+0x7b76): undefined<br>
reference to `__register_frame'<br>
..\..\lib\libLLVMJIT.a(JIT.cpp.obj):JIT.cpp:(.text+0x7b87): undefined<br>
reference to `__deregister_frame'<br>
c:/opt/gcc-4.8-win64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.2/../../../../x86_64-w64-mingw32/bin/ld.exe:<br>
..\..\lib\libLLVMJIT.a(JIT.cpp.obj): bad reloc address 0x0 in section<br>
`.pdata$_ZN4llvm16JITEventListener21NotifyFunctionEmittedERKNS_8FunctionEPvyRKNS_31JITEvent_EmittedFunctionDetailsE'<br>
collect2.exe: error: ld returned 1 exit status<br>
mingw32-make[2]: *** [bin/lli.exe] Error 1<br>
mingw32-make[1]: *** [tools/lli/CMakeFiles/lli.dir/all] Error 2<br>
mingw32-make: *** [all] Error 2<br>
_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
</blockquote></div><br></div>