今月初旬の時点でビルドは出来ていたのですが、dc-tool-ipで実機に転送→実行すると動かないという現象に遭っていました。
これは、gccの最適化でKOSカーネルに定義されているテーブルが一部無くなるという不具合のせいでした。
# KOSはすべてのソースが公開されていますので、リビルドできます。というかしないといけません
KOSに間違いは無い、自分のビルドがおかしいとばかり思い込んでいて、つい最近まで2ちゃんねるのスレッドでアドバイスをいただくまで気づきませんでした。
そんなわけで、devkitDCの構築メモを何度かに分けて公開します。
まずは、環境構築について説明します。
msysは、公式サイトのものを使用しました。
devkitProのインストール時に入れるものはコマンドが一部足りません。testとか。
作業は、MinGW内の/buildディレクトリで行いました。
前準備のスクリプトです。
gccとbinutilsには、本家devkitProのVista対応を銘打ったパッチを適用しています。
newlibにもパッチがありますが、これは適用してはいけません。
devkitProのインストール時に入れるものはコマンドが一部足りません。testとか。
作業は、MinGW内の/buildディレクトリで行いました。
前準備のスクリプトです。
#!/bin/sh
EXTRACTS=0
PATCHES=1
if [ $EXTRACTS -eq 1 ]
then
tar zxvf binutils-2.17.tar.gz
tar jxvf gcc-core-4.1.2.tar.bz2
tar jxvf gcc-g++-4.1.2.tar.bz2
tar zxvf newlib-1.15.0.tar.gz
fi
if [ $EXTRACTS -eq 1 ]
then
cd ./binutils-2.17
patch -p1 < ../patches/binutils-2.17.patch
cd ../
cd ./gcc-4.1.2
patch -p1 < ../patches/gcc-4.1.2.patch
cd ../
# cd ./newlib-1.15.0
# patch -p1 < ../patches/newlib-1.15.0.patch
# cd ../
fi
EXTRACTS=0
PATCHES=1
if [ $EXTRACTS -eq 1 ]
then
tar zxvf binutils-2.17.tar.gz
tar jxvf gcc-core-4.1.2.tar.bz2
tar jxvf gcc-g++-4.1.2.tar.bz2
tar zxvf newlib-1.15.0.tar.gz
fi
if [ $EXTRACTS -eq 1 ]
then
cd ./binutils-2.17
patch -p1 < ../patches/binutils-2.17.patch
cd ../
cd ./gcc-4.1.2
patch -p1 < ../patches/gcc-4.1.2.patch
cd ../
# cd ./newlib-1.15.0
# patch -p1 < ../patches/newlib-1.15.0.patch
# cd ../
fi
gccとbinutilsには、本家devkitProのVista対応を銘打ったパッチを適用しています。
newlibにもパッチがありますが、これは適用してはいけません。
0 件のコメント:
コメントを投稿