gcc-3.3 無理矢理パッケージ生成手順

あまり人様に胸を張って公開できるやり方ではないが,とりあえず似たようなことをやっている方々の参考と自分自身の備忘のために,どういうはまり道をたどったのか書いておく.強調されている部分は,無理矢理な解決手段をとったところ.

  • 依存関係の問題回避
    • gnat-3.2がないとgnat(Adaコンパイラ)がbuildできない → gnatを構築対象から外す.そのほか,FortranとかPascalとか使いそうもないものはすべて外す.C, C++, Java および関連ライブラリのみとする.
    • libcのバージョンが古すぎ → バージョン依存関係を無視
  • コンパイル時の不具合回避
    • stage2とstage3のバイナリ生成結果が2つほど一致しない(たしかdwarf2out.oあたりだと思うが忘れた ^^;) → stage3のバイナリをstage2にコピーしてごまかす
    • jv-convertなどlibgcj関係の実行ファイルを生成する際,libffiがリンクされない → libffi.laをlibtoolに食わせるようMakefileを直接変更
  • パッケージ生成時の問題回避
    • libgcc_s.*がdebian/tmp/usr/libにコピーされず,libgccのパッケージ生成に失敗する(ここらへん,元々のmakefileのロジックが怪しい)→ debian/rules実行中の適当なタイミングでコピーする(わはははは).これはさすがにひどすぎる回避法と思うが,どこを修正するべきかわからなかった.
    • test-summaryが生成されていない(無理矢理ごまかしたせい?)→ touchしてごまかす

ここまでで,各種パッケージは生成できた(つもり).

gcc-3.3-base_3.3.4-2_sh4.deb        libgcc1_3.3.4-2_sh4.deb
cpp-3.3_3.3.4-2_sh4.deb             protoize_3.3.4-2_sh4.deb
fixincludes_3.3.4-2_sh4.deb         libffi2_3.3.4-2_sh4.deb
libffi2-dev_3.3.4-2_sh4.deb         gij-3.3_3.3.4-2_sh4.deb
libgcj4_3.3.4-2_sh4.deb             gcj-3.3_3.3.4-2_sh4.deb
libgcj4-dev_3.3.4-2_sh4.deb         fastjar_3.3.4-2_sh4.deb
g++-3.3_3.3.4-2_sh4.deb             libstdc++5_3.3.4-2_sh4.deb
libstdc++5-3.3-dev_3.3.4-2_sh4.deb  libstdc++5-3.3-pic_3.3.4-2_sh4.deb
libstdc++5-3.3-dbg_3.3.4-2_sh4.deb  gcc-3.3_3.3.4-2_sh4.deb