14-Jan-2009: 朝昼:いつもの。夕:白飯、刺身、菜物の味噌汁。
15-Jan-2009: 朝昼:いつもの。夕:白飯、納豆、ガンモドキの煮物。
16-Jan-2009: 朝昼:いつもの。夕:カレーライス。
17-Jan-2009: 朝:寝てた。昼:ピザ。夕:橋本某所にて。
超漢字の開発環境をどうにかしたいのだけど、gcc-2.95.2が「amd64なんていうホストは知りません」と言ってくるので、どうにもならない状態。
暇つぶしにBTRONプログラミングでもするかーの>>234-235という話もあるし、手元にあるi386-elfなgcc-4.2.4でどうにかなったらいいなーと妄想中。
まずは、i386なマシンでgcc-2.95.2を構築するところから始めてみることにする。
イマドキのLinuxはgcc-4.xが標準らしく、面白いくらいにgcc-2.95.2のコンパイルが通らないらしい。じゃあ古いディストリビューションを取ってきてQEMUに食わせてみるか…ということで昔使ってたSlackware-7.1をQEMU上の仮想HDDにインストールしようとすると、fdiskがお気に召さないのか区画が作れない。
仕方がないので、その辺にあったマシンにOpenBSD-4.4/i386を突っ込んで、その上でgccの構築を試してみることにした。このバージョンのOpenBSDはgcc 3.3.5が入っているから、多分どうにかなるのかな…と。
まずはbinutils-2.12.1。超漢字開発環境ではbinutils-2.9.1が使われているけど、どうも2.12.1より前の物だと出来上がったi386-unknown-gnu-ldがinternal errorを出してうまく動かない。という訳で可能な限り近い版(古い物)を選んでみたらコレになった。
説明書(超漢字開発環境・機種依存部分のパッケージに入っているtool/gnu/ReadMe「B-right/V開発用GNUツール類の生成」)に書かれている通りでビルドできるよと書きたいんだけど、prefixの指定は直さないとダメなんじゃないかなあ。こんな風に:tar jxpf binutils-2.12.1.tar.bz2; cd binutils-2.12.1; mkdir i386-unknown-gnu; cd i386-unknown-gnu; ../configure --prefix=/usr/local/brightv/tool/gnu --target=i386-unknown-gnu; gmake; gmake install; gmake install-info
binutilsができたらgcc-2.95.2。
説明書(tool/gnu/ReadMe)は開発環境の機種依存部分に入っているので、これを参照している以上は既にどこかへ展開しているはず…今回はLinux用のbrightv.linux.tar.gzをsomewhere/に展開した場合の例で。
ReadMeにはヘッダファイルを/usr/local/brightv/tool/gnu2/i386-unknown-gnu/include/*をコピーせよと書いてあるけど、これのコピー先は開発環境のインストール先。つまり、cp -r somewhere/tool/gnu/i386-unknown-gnu/include /usr/local/brightv/tool/gnu/i386-unknown-gnuという操作になる。
i386-unknown-gnu用binutilsを使えるようにするために、export PATH=/usr/local/brightv/tool/gnu/bin:$PATHでパスを通す(bashの場合)。パスを通した後にi386-unknown-gnu-ld -vとでも打ち込んで、GNU ld version 2.12.1の表示を確認しておくと良いかも。
gcc-2.95.2の展開とconfigureはこんな感じ:tar zxpf gcc-2.95.2.tar.gz; cd gcc-2.95.2; mkdir i386-unknown-gnu; cd i386-unknown-gnu; ../configure --prefix=/usr/local/brightv/tool/gnu --target-i386-unknown-gnu --with-gnu-as --with-gnu-ld
configureが終わったら、MakefileにあるMAKEINFO = うにゃうにゃをMAKEFILE = echoに書き換えておく。これは、何故かmakeinfoがうまく動かなかったのが理由(gcc-2.95.3でも同様な措置が必要になる)。
gmake LANGUAGES="c c++" TARGET_CONFIGDIRS=でmakeした後に、touch gcc/cpp.info.dummy gcc/gcc.info.dummyでダミーのファイルを作っておく。最後にgmake LANGUAGES="c c++" TARGET_CONFIGDIRS= installでおしまい。どちらもgmakeの後ろの呪文を忘れると色々面倒なので、忘れないように。
なんでこんなやたらと面倒なことをしているかというと、ただのi386-unkwown-gnu用gcc-2.95.2を超漢字向けにどう味付けしているか、というのを調べる必要があるから。この味付けの仕方は、多分他のバージョンのgccを使う際にも参考になるんじゃないか、と思うし。
一応、specsを差し替えろという記述がReadMeにはあるのだけど、specsのどこをどう書き換えているかまでは分からない。B-right/V用の開発環境では、変更前のspecsが残っているので比較のしようもあるのだけど…超漢字開発環境には無いので、比較元を作るところから始めないといけない。
という訳で、今回構築したgccに付いているspecsと、超漢字開発環境に入っているspecsとの差分を晒しておくことにする。細かい比較はこれからのんびりやるかもしれないし、面倒になったらこのまま放置かも。(22:15)