LoginSignup
2
1

More than 3 years have passed since last update.

LLVM 10.0.0をソースコードからビルドする

Last updated at Posted at 2020-04-01

LLVMもついに10まで来ましたGCCを追い越してしましましたね(?)。今回はLLVMをソースからビルドしてみたいと思います。今回はビルドツールにmakeではなくninjaを使うのでインストールしてない場合はやっておいてください。

必要なもの

筆者のマシン環境はコア数3, メモリ10GBのVM(ubuntu18.04.4 LTS)で4時間ほどでビルドできました。できるだけ高スペックマシンでやることをおすすめします。

ソースコードをダウンロード && 展開

LLVM 9.0.1まではプロジェクト別にソースコードをダウンロードして適切なディレクトリに移動させる必要がありました。しかし、LLVM 10.0.0からllvm-project-10.0.0.tar.xzという一つのファイルが全プロジェクトを含んでおり楽になりました。ビルド時に-DLLVM_ENABLE_PROJECTSでビルド対象プロジェクトを選択することができます。

wget https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.0/llvm-project-10.0.0.tar.xz
tar xf llvm-project-10.0.0.tar.xz

ビルド・インストールディレクトリを作成

build : ビルドに使用するディレクトリ
install : 現在ディレクトリ直下にinstallを作成し、そこにインストールする。他にインストール場合は任意のものに変える

mkdir build install

ビルド

makeの代わりにninjaを指定していることに注意してください。ビルドの並列数を指定する場合make -j16のように-jオプションで指定されますが、ninjaの場合はコア数を自動認識して並列ビルドされるようです。勝手に並列ビルドされてはメモリが心配なので-DLLVM_PARALLEL_LINK_JOBS="1"でリンク時のみ非並列で動作させるように指定します。

pushd ./build
cmake -G "Ninja"                             \
      -DCMAKE_INSTALL_PREFIX=./install       \
      -DCMAKE_C_COMPILER="gcc"               \
      -DCMAKE_CXX_COMPILER="g++"             \
      -DCMAKE_BUILD_TYPE="Release"           \
      -DLLVM_PARALLEL_LINK_JOBS="1"          \
      -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;compiler-rt;libc;libclc;libcxx;libcxxabi;libunwind;lld;lldb;openmp;parallel-libs;polly;pstl" \
      ../llvm-project-10.0.0/llvm
ninja
ninja install
popd

余談ですがビルドにmakeではなくninjaを使用したのはドキュメントに「ninjaのほうが早くビルドできるよ」と書いてあったためです。(恥ずかしながら今までninjaを知らなかったのです。) LLVMのビルドは巷でも(?)高スペックが必要とされているらしいのでninjaをおすすめします。

参考

https://llvm.org/docs/CMake.html
https://llvm.org/docs/GettingStarted.html

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1