Ubuntu 18.04 で MONO + LLVM をビルドしてみる

Ubuntu 18.04 で MONO + LLVM をビルドしてみる

 

mono-wasm を見て、どうかなと見るとmono/monoに移行した風なので

試してみたんだけど --enable-wasm 追加すると

--------------------------------------------------------

NALIGNED_ACCESS -s WASM=1 conftest.c >&5

gcc: error: WASM=1: No such file or directory

--------------------------------------------------------

で落ちるんだが、何か間違えているんだろうなぁ・・・・・

※もしくは、よくわかってない・・・

とりあえず、メモとして残しておく

--------------------------------------------------------

./configure --help を見ると --with-wasm=yes が正しい

buildは最終的に通ったコマンドのみを残すように修正

※やはり 一発通して確認するのが基本だよな・・と反省

※現在は --enable-wasm は

 This is a workaround to enable usage of old automake versions

 that don't recognize the wasm triplet

 これは、古いautomakeのバージョンの使用を可能にするための回避策です

 だから autogen.sh では使用しないということで良いのかな?

--------------------------------------------------------

※今の時点では LLVM のビルド後 MONO をビルドするという制限があるようだ

 (これは正しい)

※mono の option flag の制限がある(らしけど何とは記述されてない?

※2018/06/15 の時点では 18.04 では build エラーになる

 16.04 LTS では build が正常終了する

Mono LLVMのインストール

適当な dir で

$ git clone --recursive git://github.com/llvm.git
$ cd llvm
$ ./configure --prefix=/opt/llvm --enable-optimized --enable-targets="x86 x86_64"
$ make
$ sudo make install

以下の環境変数を設定する

export MONO_USE_LLVM=1
PATH=/opt/llvm/bin:/opt/mono/bin:$PATH

mono のビルドには runtime が必要だが、存在しない場合は

$ ./autogen.sh

実行後、以下を実行すればよいと記述されているが(more risky approach

$ make get-monolite-latest

事前に以下より最新版をDLしてインストールする

Home | Monoのインストール

mono-5.12.0.226.tar.bz2 をDL後

$ tar xf mono-5.12.0.226.tar.bz2
$ cd mono-5.12.0.226
$ ./autogen.sh --prefix=/opt/mono CFLAGS=-L/opt/llvm/lib --enable-llvm
$ make get-monolite-latest
$ make
$ sudo make install

mono/monoのインストール

適当な dir で

$ git clone --recursive git@github.com:mono/mono
$ cd mono
$ ./autogen.sh --prefix=/opt/mono CFLAGS=-L/opt/llvm/lib --enable-llvm --enable-llvm-runtime --with-wasm=yes
$ make
$ sudo ../mono-5.12.0.226/make uninstall
$ sudo make install

※mono が mono-sgen に link を張っているので --with-sgen

 を追加しているんだけど、どうなんだろう??

 -> 結果を見ると無くても良さげ