//www.旧型、PSP開発幼稚園.game.jp/(本館) -133ページ目

D0#03toolchainいれなきゃ駄目なのかな(2005-12/30)(その1)

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」使ってないです。) 詳しくはこちら