インストール - LLVM

提供:MochiuWiki : SUSE, EC, PCB
2021年12月22日 (水) 04:53時点におけるWiki (トーク | 投稿記録)による版 (→‎LLVMのインストール)
ナビゲーションに移動 検索に移動

概要



LLVMのインストール

LLVMのGithubから、LLVMのソースコードをダウンロードする。
ダウンロードするファイルは、llvm-project-<バージョン>.src.tar.xzである。

ダウンロードしたLLVMのソースコードを解凍する。

tar xf llvm-project-<バージョン>.src.tar.xz


LLVMのビルドディレクトリを作成する。

cd llvm-project
mkdir build && cd build


LLVMをビルドおよびインストールする。

cmake -G "Unix Makefiles" \
-DLLVM_TARGETS_TO_BUILD="X86;AArch64" \  # x86, x86-64, AArch64向けのLLVMをビルドする場合(デフォルトは全てのアーキテクチャ)
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=<LLVMのインストールディレクトリ> \
-DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;compiler-rt;flang;libclc;libcxx;libcxxabi;libunwind;lld;lldb;mlir;openmp;polly" \
../llvm

make -j $(nproc)
make install

# または
cmake -G Ninja "Unix Makefiles" \
-DLLVM_TARGETS_TO_BUILD="X86;AArch64" \  # x86, x86-64, AArch64向けのLLVMをビルドする場合(デフォルトは全てのアーキテクチャ)
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=<LLVMのインストールディレクトリ> \
-DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;compiler-rt;flang;libclc;libcxx;libcxxabi;libunwind;lld;lldb;mlir;openmp;polly" \
../llvm

ninja
ninja install


ビルド向けオプションは、以下の通りである。

  • PYTHON_EXECUTABLE
    Pythonへのパスを渡すことで、CMakeに特定のPythonのバージョンを使用する。
    デフォルトでは環境変数PATHにあるPythonが使用される。

  • LLVM_TARGETS_TO_BUILD
    ビルドするターゲットを選択する。
    これは、LLVMにどのターゲットをリンクするかを制御するセミコロンで区切られたリストである。
    デフォルトは、LLVM_ALL_TARGETSとして定義されている。
    デフォルトでは、以下のターゲットが含まれる。
    AArch64, AMDGPU, ARM, AVR, BPF, Hexagon, Lanai, Mips, MSP430, NVPTX, PowerPC, RISCV, Sparc, SystemZ, WebAssembly, X86, XCore

  • LLVM_ENABLE_DOXYGEN
    ソースコードからdoxygenベースのドキュメントをビルドする。
    これは多くの出力を生成するため、デフォルトでは無効になっている。

  • LLVM_ENABLE_PROJECTS
    他のLLVMサブプロジェクトの内、どのプロジェクトを追加でビルドするかをセミコロンで区切ったリストで指定する。
    デフォルトでは空のリストである。
    ビルドできるプロジェクトは、以下の通りである。
    clang、clang-tools-extra、compiler-rt、cross-project-tests、flang、libc、libclc、libcxx、libcxxabi、libunwind、lld、lldb、mlir、openmp、polly、pstl

  • LLVM_ENABLE_SPHINX
    Sphinxベースのドキュメントをビルドする。
    これは多くの出力を生成するため、デフォルトでは無効になっている。
    Sphinx 1.5以降を推奨する。

  • LLVM_BUILD_LLVM_DYLIB
    libLLVM.soを生成する。
    このライブラリには、LLVMコンポーネントのデフォルトセットが含まれており、LLVM_DYLIB_COMPONENTSでオーバーライドすることができる。
    デフォルトでは、ほとんどのLLVMが含まれており、tools/llvm-shlib/CMakelists.txtで定義されている。
    このオプションはWindowsでは使用できない。

  • LLVM_OPTIMIZED_TABLEGEN
    リリーステーブル生成器を構築する。


LLVMのインストール完了後、~/.profileファイル等に環境変数を設定する。

export PATH="/<LLVMのインストールディレクトリ>/bin:$PATH"
export LDFLAGS="-L/<LLVMのインストールディレクトリ>/lib"
export CPPFLAGS="-I/<LLVMのインストールディレクトリ>/include"