前々からautoconfではなく、cmakeでのビルドを推奨していたLLVMだが、ついにautoconfのサポートが無くなってしまった。
そこでcmakeでのARMクロスコンパイラのビルド方法を記載しておく。
(1)LLVM(Clang含む)のソースコード一式を適当なフォルダに展開する
展開の仕方は公式のGetting startedを参照
(2)LLVMのフォルダとは別の場所にビルドフォルダを作成し移動する.
(3)以下のようにcmakeを実行すればMakefileが生成される
cmake <LLVMフォルダパス> -DCMAKE_CROSSCOMPILING=True -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="ARM;AARCH64" -DCMAKE_INSTALL_PREFIX=<ビルドしたバイナリのインストール先パス> -DLLVM_TARGET_ARCH=ARM -DLLVM_DEFAULT_TARGET_TRIPLE=arm-none-eabi
(4)make; make install
2016年10月31日月曜日
2016年8月11日木曜日
ARMクロスコンパイル用clang その2
ARMクロスコンパイル用clangの続き
普段使っているのがWindowsなのでWindows上でもARMクロスコンパイルclangを作成して見る
自作OS向けなのでベアメタルビルドでOK。
ライブラリ無しのコンパイラのみなのでビルドはシンプル。
普段使っているのがWindowsなのでWindows上でもARMクロスコンパイルclangを作成して見る
自作OS向けなのでベアメタルビルドでOK。
ライブラリ無しのコンパイラのみなのでビルドはシンプル。
■準備
msys2 32bit版を導入
(1) https://msys2.github.io/ から msys2-i686-[hhhhmmdd].exe をダウンロードして実行する
(2) メニューからMinGW-w64 Win32 shellを選択してターミナルを出す
(3) ターミナルからシステムアップグレード
pacman -Syu --noconfirm
(4) ターミナルを1度閉じる
(5) エクスプローラから C:\msys32\mingw32.exe を実行する
アップグレードするとメニューからのターミナル起動ショートカットがなぜか効かなくなるので直接実行
(6) clangビルドに必要なパッケージをインストール
pacman -S base-devel mingw-w64-i686-toolchain python --noconfirm
■binutils, clangをビルド
ビルド用スクリプトbuild-arm-clang.shを用意
(使用方法)
build-arm-clang.sh [binutilsバージョン] [llvm/clangバージョン]
何も指定しないとbinutils-2.27, llvm-3.8.1 になる
(使用方法)
build-arm-clang.sh [binutilsバージョン] [llvm/clangバージョン]
何も指定しないとbinutils-2.27, llvm-3.8.1 になる
2015年8月11日火曜日
ARMクロスコンパイル用clang
■ソース取得
・binutils
http://ftp.gnu.org/gnu/binutils/
上記から最新バージョンのtarアーカイブ取得
・LLVM他
gitで取得
git clone http://llvm.org/git/llvm
cd tools
git clone http://llvm.org/git/clang
git clone http://llvm.org/git/lldb
■ビルド
・binutils
cd binutils
mkdir build
../configure --target=arm-eabihf --enable-threads --enable-shared
make; make install
(注意)
../configure --target=arm-eabihf --enable-targets=arm とするとエラー発生
複数ARM用のビルド設定は出来ない様子
・clang, llvm, lldb
cd llvm
mkdir build
cd build
../configure --target=arm-eabihf --enable-threads --enable-shared --enable-optimized --disable-assertions --with-abi=aapcs-vfp --with-cpu=cortex-a9 --with-float=hard --with-fpu=neon
make; make install
・binutils
http://ftp.gnu.org/gnu/binutils/
上記から最新バージョンのtarアーカイブ取得
・LLVM他
gitで取得
git clone http://llvm.org/git/llvm
cd tools
git clone http://llvm.org/git/clang
git clone http://llvm.org/git/lldb
■ビルド
・binutils
cd binutils
mkdir build
../configure --target=arm-eabihf --enable-threads --enable-shared
make; make install
(注意)
../configure --target=arm-eabihf --enable-targets=arm とするとエラー発生
複数ARM用のビルド設定は出来ない様子
・clang, llvm, lldb
cd llvm
mkdir build
cd build
../configure --target=arm-eabihf --enable-threads --enable-shared --enable-optimized --disable-assertions --with-abi=aapcs-vfp --with-cpu=cortex-a9 --with-float=hard --with-fpu=neon
make; make install
2015年7月23日木曜日
msys2 - clang作成
■準備
以下のパッケージをインストール。64bit版を想定
・mingw-w64-x86_64-toolchain
→32ビットにしたいならmingw-w64-i686-toolchain
・diffutils
・git
■llvmファイル一式取得
適当なワークフォルダに移動してgitで取得
git clone http://llvm.org/git/llvm
cd tools
git clone http://llvm.org/git/clang
git clone http://llvm.org/git/libcxx
cd ../projects
git clone http://llvm.org/git/compiler-rt
cd ..
■ビルド
ARMクロスコンパイルもしたいのでx86, x86_64, arm, arm64をターゲットとしてビルドする
mkdir build
cd build
../configure --enable-targets=x86_64,x86,arm,aarch64 --disable-assertions --enable-optimized
make; make install
2013年5月14日火曜日
ビルド環境移行 - clang準備
CodeSourcery のgcc環境からclangへ乗り換えを検討する。
■Clangダウンロード
LLVMのClangサイトから最新版Ver. 3.2のダウンロード
Experimental Clang Binaries for Mingw32/x86が対象ファイル
■準備
まずClangを動作させるのに必要なMinGWをインストールする。
注意すべきは必ずC:/MinGWにインストールすること。
現状のMinGW版Clangは上記フォルダにMinGWがあることがハードコードされている。
次にClangが使うgccのライブラリの準備
現状Clang Ver. 3.2のWindowsビルドがサポートしているgccライブラリのバージョンは以下の通り
4.3.0, 4.4.0, 4.5.0, 4.5.2, 4.6.1, 4.6.2
これはclangのソースコード /clang/lib/Frontend/InitHeaderSearch.cpp L400あたりにハードコードされている。
そこでMsysプロンプトから以下のコマンドを実行して該当バージョンのgccインストール
mingw-get install gcc=4.6.2-1
mingw-get install g++=4.6.2-1
既に4.7.0とかがインストールされていてエラーになってしまった場合は下記
mingw-get upgrade gcc=4.6.2-1
mingw-get upgrade g++=4.6.2-1
■インストール
ダウンロードしたClangのファイル一式を適当な場所に展開するだけ。
/binフォルダにパスを通しておく
以下コマンドで動作確認
clang --version
clang version 3.2 (tags/RELEASE_32/final)
Target: i686-w64-mingw32
Thread model: posix
と出たらインストール成功
■Clangダウンロード
LLVMのClangサイトから最新版Ver. 3.2のダウンロード
Experimental Clang Binaries for Mingw32/x86が対象ファイル
■準備
まずClangを動作させるのに必要なMinGWをインストールする。
注意すべきは必ずC:/MinGWにインストールすること。
現状のMinGW版Clangは上記フォルダにMinGWがあることがハードコードされている。
次にClangが使うgccのライブラリの準備
現状Clang Ver. 3.2のWindowsビルドがサポートしているgccライブラリのバージョンは以下の通り
4.3.0, 4.4.0, 4.5.0, 4.5.2, 4.6.1, 4.6.2
これはclangのソースコード /clang/lib/Frontend/InitHeaderSearch.cpp L400あたりにハードコードされている。
そこでMsysプロンプトから以下のコマンドを実行して該当バージョンのgccインストール
mingw-get install gcc=4.6.2-1
mingw-get install g++=4.6.2-1
既に4.7.0とかがインストールされていてエラーになってしまった場合は下記
mingw-get upgrade gcc=4.6.2-1
mingw-get upgrade g++=4.6.2-1
■インストール
ダウンロードしたClangのファイル一式を適当な場所に展開するだけ。
/binフォルダにパスを通しておく
以下コマンドで動作確認
clang --version
clang version 3.2 (tags/RELEASE_32/final)
Target: i686-w64-mingw32
Thread model: posix
と出たらインストール成功
登録:
投稿 (Atom)