Mona/C++の例外とRTTI/04.例外RTTIランタイムのビルド手順


Mona/C++の例外とRTTI

例外RTTIサポートランタイムのビルド手順(WIP)

暫定版です。近い内にランタイムの内容、作り方が変わる可能性があります。

以下はgcc-4.6.1とbinutils-2.21.1での手順です。

--prefixへ指定するインストール先シェル変数の設定とディレクトリ準備

MONA_GCC_INSTALL=<インストール先>
mkdir $MONA_GCC_INSTALL/i586-mingw32msvc

gccビルド用ヘッダの用意

tar xf headers_mona_gcc_v1.tar.bz2
cp -r ./include $MONA_GCC_INSTALL/i586-mingw32msvc

libstdc++ビルド時のリンクテストを通すためのライブラリを用意

(sjlj版のみmingwランタイムで代用可)

tar xf libs_mona_gcc_v1.tar.bz2
cp -r ./lib $MONA_GCC_INSTALL/i586-mingw32msvc

binutilsの取得

wget http://ftp.gnu.org/gnu/binutils/binutils-2.21.1.tar.bz2
tar xf binutils-2.21.1.tar.bz2

binutilsにパッチを当ててPE/COFFでの--gc-sectionsを有効にする

binutilsのconfigure、makeまで

mkdir binutils_build
cd binutils_build
../binutils-2.21.1/configure --target=i586-mingw32msvc \
 --prefix=$MONA_GCC_INSTALL --disable-nls --disable-shared \
 --disable-threads
make
make install

cd ..

gccのソースと依存ライブラリの取得

wget ftp://ftp.dti.ad.jp/pub/lang/gcc/releases/gcc-4.6.1/gcc-4.6.1.tar.bz2
tar xf gcc-4.6.1.tar.bz2

wget ftp://ftp.gmplib.org/pub/gmp-5.0.2/gmp-5.0.2.tar.bz2
tar xf gmp-5.0.2.tar.bz2
mv gmp-5.0.2 gcc-4.6.1/gmp

wget http://www.multiprecision.org/mpc/download/mpc-0.8.2.tar.gz
tar xf mpc-0.8.2.tar.gz
mv mpc-0.8.2 gcc-4.6.1/mpc

wget http://www.mpfr.org/mpfr-current/mpfr-3.0.1.tar.bz2
tar xf mpfr-3.0.1.tar.bz2
mv mpfr-3.0.1 gcc-4.6.1/mpfr

gccのconfigureまで

mkdir gcc_build
cd gcc_build

gccのmake

make all-host all-target-libgcc

make configure-target-libstdc++-v3
cd i586-mingw32msvc/libstdc++-v3
make
cd ../..

インストールする前にビルド用ヘッダ、ライブラリを掃除しておく

rm -rf $MONA_GCC_INSTALL/i586-mingw32msvc/include/*
rm -rf $MONA_GCC_INSTALL/i586-mingw32msvc/lib/*.a

gccのインストール

make install-host install-target-libgcc install-target-libstdc++-v3

これでMONA_GCC_INSTALLで指定したインストール先にlibgcc.a、libgcc_s.a、libgcc_s_dw2-1.dll、libsupc++.a、crtbegin.o、crtend.o、それに例外RTTI用のヘッダファイルがインストールされます。

作ったgccでmonaをビルドする

dwarf版の場合、例外を使うアプリの実行にはlibgcc_s_dw2-1.dllがMona側に必要です

specsファイルのインストール

例外有効時にコンパイルオプションを正しく指定するのは難しいので、デフォルトのspecsを上書きします。

cp specs $MONA_GCC_INSTALL/lib/gcc/i586-mingw32msvc/4.6.1

specsファイルのインストール後、作ったgccを使う際はあらかじめ環境変数MONADIRにMonaのソースディレクトリを指定しておいて下さい

export MONADIR=<Monaのソースディレクトリ(mona/mona)への絶対パス>

ログ

MENU

now: 2

リンク


最新の20件
2018-09-03 2018-05-09 2017-09-29 2017-01-10 2016-12-11 2016-10-04 2016-08-14 2016-06-05 2016-05-29 2016-04-15 2015-12-28 2013-02-25 2013-02-21 2013-02-20 2013-02-12 2013-02-11 2013-02-10
最新の20件
2010-02-01 2010-01-31 2010-01-30 2010-01-29 2010-01-16

Counter: 1540, today: 1, yesterday: 2

添付ファイル: filespecs 601件 [詳細] fileheaders_mona_gcc_v1.tar.bz2 441件 [詳細] filelibs_mona_gcc_v1.tar.bz2 424件 [詳細] filelibs_mona_gcc_v0.tar.bz2 310件 [詳細] fileheaders_mona_gcc_v0.tar.bz2 313件 [詳細]

リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Last-modified: 2011-10-10 (月) 15:22:37 (2538d);  Modified by mona
PukiWiki 1.4.6 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji
Powered by PHP 5.2.17
HTML convert time to 0.035 sec.