読者です 読者をやめる 読者になる 読者になる

CoreCLRをUbuntu15.04でビルド

CoreCLRをUbuntu15.04でビルドしたいと思います。

下記の準備が必要です。

・LDLB

LLVMのデバッガ

インストールは「$ sudo apt-get install lldb-3.6 lldb-3.6-dev 」

 

LLVM/Clang

Clangはソースコードを入力として字句解析を行う。LLVMと共に提供されるコンパイラフロントエンド。LLVMは環境や指定に合わせたマシン語生成。

インストールは「$ sudo apt-get install llvm-3.5」「sudo apt-get install clang-3.5 」

 

 ・CMake

コンパイラに依存しないビルド自動化のためのフリーソフトウェア

インストールは「$ sudo apt-get install cmake」

 

・libunwind

プログラムのコールチェーンを決定/操作するためのツール

インストールは「$ sudo apt-get install libunwind8 libunwind8-dev」

 

※米Microsoftは4月13日、LLVMベースのコンパイラ「LLILC」を発表しています。

このコンパイラは.NETで使われる中間コードをネイティブな実行可能コードに変換するコンパイラ。現時点ではWindowsのみ。

 

・Gitクライアントをインストールします。

インストールは「$ sudo apt-get install git-core」

 

上記の準備が終わったらCoreCLRをビルドしたいと思います。 

・CoreCLRリポジトリの内容をローカルにクローンします。

git clone https://github.com/dotnet/coreclr

 

・ディレクトリを$ cd coreclrで変更後に下記のコマンドを実行します。

$ ./build.sh

上記はデバッグモードなのでリリースモードは下記の通りです。

$ ./build.sh amd64 release

 

※少し時間がかかります。

...36%を過ぎた時点でディスク容量が足りないメッセージが...あっちゃー。

順調だったのにな...しかたないので強制終了です。

近いうちにハードディスクを購入して、出直します。残念...

容量を確保して無事にビルドできました。

 

GCJITは下記のライブラリに含まれています。

/coreclr/bin/Product/Linux.x64.Debug/libcoreclr.so

 

CoreCLR環境ではcorerunファイルからプログラムが起動されます。

/coreclr/bin/Product/Linux.x64.Debug/corerun

./corerun aaaa.exeのように利用します。

 

mscorlib.dllも必要ですが、まだLinuxで作成できないようです。

We don't yet have support for building managed code on Linux, so you'll need a Windows machine with clones of both the CoreCLR and CoreFX projects.

You will build  mscorlib.dll  out of the coreclr repository and the rest of the framework that out of the corefx repository. For mscorlib (from a regular command prompt window) run:

Windwosでmscorlib.dllを作成します。

CoreCLRリポジトリの内容をローカルにクローンします。

f:id:GraySilverCoin:20150510204646p:plain

build.cmd linuxmscorlibでmscorelib.dllを作成します。

f:id:GraySilverCoin:20150510205203p:plain

C:\GitHub\coreclr\bin\Product\Linux.x64.Debugに作成されます。