2005-12/30(その1)
cygwin環境を再構築する必要ありそう
情報が多すぎて用語が混乱
こちらは単に「コンパイル→実行」したいだけなのに、そこまで
辿りつけん。
具体的には
int xmain(int argc, char *argv)
{
return 0;
}
と"startup.S"をリンク/コンパイルして、
outpatch.exeをあてて。
elf2pbp outp "null test"
でPBPファイル(EBOOT.PBP)に変換。
あとはPSPに持ってって実行すれば、
ぴろーんてなって、メニューに戻るハズ。
もし何も動かなければ、"startup.S"のリンク自体が失敗してるし。
ぴろーんだけならコンパイル失敗してる。
うんうん、やりたい事(目的)ははっきりしてるんだけど。
具体的手段(技術、環境設定など)がついていかん。
(だって全部アセンブラで書くなんて非現実的でしょ、
_xmain:
rts (pspのアセンブラは判らないので気分です)
なんて、仮に動くとしても書く気になれん。最低でも
Cにリンク出来なきゃ)
現状は全然そんなとこまで進んでなくて、とにかく
cygwin環境がきちんと設定できてないから、
リンク/コンパイルがうまくいかない。
むーん、なんて低レベルなんだ。
先が思いやられる。
基本的には(理屈上は)いまの怪しげなcygwin環境でも
aliasさえ通せばうまくいくと思うんだが、それでいいんなら
「toolchain」ていらないよなあ。よく判らない。
コンパイル失敗するの嫌だからこの際、dosv用のgcc達には
どいてもらうか。だってきちんと環境が設定できてない
から「psp-gcc-4.0.0.exe」(コンパイラドライバ)が
アーカイバとかアセンブラとかライブラリアンとかみーんな
「psp-ar.exe」があっても「ar.exe」
「psp-as.exe」があっても「as.exe」
「psp-ld.exe」があっても「ld.exe」
...
を呼びにいっちゃうみたいなんだもん。
この調子じゃあ絶対コンパイルできないってば。
なんて低レベルなんだ。先が思いやられる。
少し情報を整理:
1.まず、「toolchain」これってとあるページを見に行ったら
まるで「==SDK」みたいに書いてある。だからSDKの事だ
と思ってた。
これは勘違い。とうやらこれは「設定用スクリプト」らしい。
(まだ勘違いしてるかも)
具体的には「psptoolchain-20051202.tgz」らしい。
2.次SDK、これって
「psp-gcc-4.0.0.tar.bz2」とそのライブラリ
「psp-newlib-1.13.0-compiled-with-gcc-4.0.0.tar.bz2」の
ことだよね。(2005年12/29現在)
あとこれもかな
「psp-binutils-2.16.tar.bz2」(?とにかくいるらしい)
とにかくよく判んないから少しtoolchainの中調べたほうが
良さそう。
そうしないとcgwinにどういうものを入れたら
(インストールしたら)いいのか判らないし。
□現状必要なものは
bash(普通標準で入ってるってば)
make(dosv用でいいのかな?)
「psp-binutils-2.16.tar.bz2」(?とにかくいるらしい)
「psp-gcc-4.0.0.tar.bz2」(psp用(もしかして
これって中身はps2用?)GCC)
「psp-newlib-1.13.0-compiled-with-gcc-4.0.0.tar.bz2」
(そのライブラリ)
「psptoolchain-20051202.tgz」(?まだ良く判ってない)
(これを動かせば設定してくれるんじゃあないかな
(未だやってない))
それから
「outpatch.exe」(ps2用?ELFファイルを
psp用ELFファイルに変換(多分))
「elf2pbp.exe」 (psp用ELFファイルを
psp用実行可能ファイルに変換(多分))
(elf2pbp3.zip)
□要らない物は
gcc達(dosv用)
(だってoutpatchもelf2pbpもexeであるし)
えーっ。今、始めてtoolchainの中身見たんだけど、
これって普通のGCC? → PSP用のGCCへの
改造スクリプトぢゃないの?(GCC以外も改造する)
これってBUP(そりはDOS)ぢゃなくて、CVSだっけ
(だから違うってば)いやdiff(だっけ?)で
バリバリパッチ当ててんじゃん。
てことは、gcc達(dosv用)いるかも(?)しれないし、
そもそも「psp-gcc-4.0.0.tar.bz2」って「gcc-4.0.0」に
PSP用パッチ当ててあるもの、ぢゃあなかったの?
基本的な処で誤解をしてるのかもしれないなあ。
「toolchain」ているんだか、いらないんだか。
それすらよく判らない。
きっと「toolchain」は要らなくて。もっとずーっと
低レベルな環境設定でこけてるんだろな。
(そのとうり、かも)
それにこのverの「toolchain」は
(「psptoolchain-20051202.tgz」)
## Source code versions.
BINUTILS="binutils-2.16"
GCC="gcc-4.0.1" →(ここが違う!)
NEWLIB="newlib-1.13.0"
とか書いてあるし、GCCのVerが違うから。
「gcc-4.0.1.patch」は当てない方が安全なのかな。
その場合「gcc-4.0.0.patch」がいるよなあ。もう
ちっと古いver検索した方がいいのかも?
いやそんな後ろ向きな話より、万が一、
「psp-gcc-4.0.1.tar.bz2」と
「psp-newlib-?.??.?-compiled-with-gcc-4.0.1.tar.bz2」
がもし見つかれば、その方がいいな。
って、そんなの探してみなくちゃ、見つかるんだか、
どおだか、そもそも世間に存在するんだか、
さっぱり判らない。
でも、
## Main pspdev settings.
PSPDEV="/usr/local/pspdev"
PATH="$PATH:$PSPDEV/bin"
とか書いてあってここでパスを設定してるみたいだから、
みんなは、これを動かしてるのかもしれないなぁ?
この一連のシェルスクリプトに関しては、結局の所。
いるんだか、いらないんだか、さっぱり判らない。
はやく人間になりたーい(本日のレベル単細胞生物、分裂気味)
(C)ベム、ベラ、ベロ
(状態:今だ迷走中、もう3日もさまよってるんですけど)
■追記(2006-1/19)
上のは日記なので、訳わからないかも知れませんが、要点は
「psp-binutils-2.16.tar.bz2」は必要。
「psp-gcc-4.0.0.tar.bz2」は必要。
「psp-newlib-1.13.0-compiled-with-gcc-4.0.0.tar.bz2」は必要。
一方、
「psptoolchain-20051202.tgz」は不要。(参考用にDLしてもよい)
という事です。(初心者がPSP開発のみをしたい場合)
また、「psptoolchain-20051202.tgz」を展開して、動作させれば、
上記3つの必要ファイルを勝手にDLして、インストールしてくれるみたいです。
(試してないので判らない)
ツールチェイン「psptoolchain-20051202.tgz」にすべて任せても(要ネット接続環境)
かまわないですが、なくてもできます。
(うちはいまだにツールチェイン「toolchain.sh」使ってないです。)
詳しくはこちら