ラベル msys2 の投稿を表示しています。 すべての投稿を表示
ラベル msys2 の投稿を表示しています。 すべての投稿を表示

2016年8月11日木曜日

ARMクロスコンパイル用clang その2

ARMクロスコンパイル用clangの続き

普段使っているのが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 になる


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

msys2インストール

■インストール後アップデート
pacman -Suy

もし下記エラーが出る場合は
error: GPGME error: No data
error: GPGME error: No data
error: GPGME error: No data

rm -r /var/lib/pacman/sync
pacman -Syuf
 
アップデート後はターミナルを再起動する