Windows(Cygwin)環境にLLVM 2.6を入れてみた。

思いのほかあっさり導入できた。"./configure"にやたら時間がかかるのは毎度の事だけど。


ソースコード"llvm-2.6.tar.gz"はオフィシャルサイト「LLVM Download Page」からもらってきました。後は普通にコンパイル

$ cygcheck -c cygwin
Cygwin Package Information
Package              Version        Status
cygwin               1.7.x.x        OK
$./configure
$make -j 2

libprofile周りでerrorが多発したため、以下のオプションで回避できないかテスト。

$make tools-only -j 2
...
lvm[0]: ***** Completed Release Build
$make install

あれ、だめだ?他に方法は...Malefile.rulesの記述を修正する方針へ。

 else
   ifeq ($(HOST_OS),Cygwin)
-    SharedLinkOptions=-shared -nostdlib -Wl,--export-all-symbols \
+    SharedLinkOptions=-shared -Wl,--export-all-symbols \
                       -Wl,--enable-auto-import -Wl,--enable-auto-image-base
   else

とりあえず、力技だけどOKかな。


llvm-configも動いているから良しとするか。あとは実際にLLVMを利用するコードをコンパイルして動かしてみよう。

$ llvm-config --cxxflags --libs
-I/usr/local/include  -D_DEBUG -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONS
TANT_MACROS -O3 -fomit-frame-pointer -Woverloaded-virtual
-lLLVMXCoreCodeGen -lLLVMXCoreAsmPrinter -lLLVMXCoreInfo -lLLVMSystemZCodeGen -l
LLVMSystemZAsmPrinter -lLLVMSystemZInfo -lLLVMSparcCodeGen -lLLVMSparcAsmPrinter
 -lLLVMSparcInfo -lLLVMPowerPCCodeGen -lLLVMPowerPCAsmPrinter -lLLVMPowerPCInfo
-lLLVMPIC16AsmPrinter -lLLVMPIC16CodeGen -lLLVMPIC16Info -lLLVMMSP430CodeGen -lL
LVMMSP430AsmPrinter -lLLVMMSP430Info -lLLVMMSIL -lLLVMMSILInfo -lLLVMMipsAsmPrin
ter -lLLVMMipsCodeGen -lLLVMMipsInfo -lLLVMLinker -lLLVMipo -lLLVMInterpreter -l
LLVMInstrumentation -lLLVMJIT -lLLVMExecutionEngine -lLLVMDebugger -lLLVMCppBack
end -lLLVMCppBackendInfo -lLLVMCellSPUCodeGen -lLLVMCellSPUAsmPrinter -lLLVMCell
SPUInfo -lLLVMCBackend -lLLVMCBackendInfo -lLLVMBlackfinCodeGen -lLLVMBlackfinAs
mPrinter -lLLVMBlackfinInfo -lLLVMBitWriter -lLLVMX86AsmParser -lLLVMX86AsmPrint
er -lLLVMX86CodeGen -lLLVMX86Info -lLLVMAsmParser -lLLVMARMAsmPrinter -lLLVMARMC
odeGen -lLLVMARMInfo -lLLVMArchive -lLLVMBitReader -lLLVMAlphaCodeGen -lLLVMSele
ctionDAG -lLLVMAlphaAsmPrinter -lLLVMAsmPrinter -lLLVMCodeGen -lLLVMScalarOpts -
lLLVMTransformUtils -lLLVMipa -lLLVMAnalysis -lLLVMTarget -lLLVMMC -lLLVMCore -l
LLVMAlphaInfo -lLLVMSupport -lLLVMSystem