Clang4.0がでた
LLVM 4.0.0 Release Notes releases.llvm.org/4.0.0/docs/Rel… LLVM Coroutineというのができたらしい
2017-03-14 12:59:21Devirtualization in LLVM and Clang blog.llvm.org/2017/03/devirt…
2017-03-14 13:06:25これはビルドせざるを得ない!(謎の使命感)
clangのビルドは伝統的なautoconfとGNUmakeでやるやり方は非推奨となっていて、cmakeを使うことが推奨されている。
cmake+GNUmakeでもよかったのだが、前からビルドが速いと噂のninjaを使ってみたかったので試してみることにした。
今回はmsys2上ではなくクロスコンパイルでもなく普通にUbuntuでビルドするので、
sudo apt install build-essential git cmake ninja-build golang-go libncurses5-dev swig libxml2-dev doxygen graphviz
あたりを入れておけば大丈夫でしょう(なんか抜けている気はするが)。
注意点としてclangのビルドにはC++11をコンパイルできる(MSVCは可)コンパイラが必要です。CentOSとか使ってるとgccのビルドからしないといけないかもね。
cmakeは自分はGUIでやりました。
cmakeのオプションはGUIでやっちゃったので
https://gist.githubusercontent.com/yumetodo/3667315003256630c24daa6ec83a7f6c/raw/74131e22529593c1e8b7755a3095f809b4dbbb5f/CMakeCache.txt
この辺見てください。
llvm4.0がらしいので、早速ビルドしている。cmake+ninjaでやったらninjaのデフォルトのスレッド数が8で快適にニコニコ動画を見れなくなったので慌てて-j3した。 pic.twitter.com/MjMHqoFm0A
2017-03-14 17:16:55この頃は普通に動画見ながらビルドできた。
異変
・・・4GB!?
-j2したらどっちともldが動いてああああってなったので驚きの-j1してきた。 それでも重い pic.twitter.com/7FohwjFYgr
2017-03-14 17:48:56こんなふうにninjaのlogみつつメモリー使用量監視しつつミッカさんの動画見てる pic.twitter.com/IU4NugeW2u
2017-03-14 18:09:33clangのldのメモリー消費量が尋常じゃない。物理メモリー(8GB)使い果たした pic.twitter.com/D3Dwqa6M3q
2017-03-14 18:20:55お風呂入ってたらClangのビルド終わってた。途中のメモリー消費やばい pic.twitter.com/MsB0AYtHnf
2017-03-14 23:10:49脅威の、実メモリ7.4GB/8.0GB、HDD上のSwap11.4GB/18GB消費である。
Swapを多めに取っていなければ即死だった。
6時間に及ぶ死闘(コンパイル&リンク)が終了した・・・?
いちおうtest走らせるか、と思ったんだ
ええ、思ったんですよ。