Landisk で g++ をセルフコンパイルする

[戻る]

LANDISK (HDL-160U) のセルフコンパイル方法は こちら の方に 書かれてましたが, 例えば以下のような簡単なプログラムを g++ でコンパイルしようとしてもできませんでした.

#include 

void hoge(){
  exit(1);
}

int main(){
  hoge();
  return 0;
}

具体的には

/usr/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status
とかいうエラーが出ます.

というわけで回避方法ですが, libstdc++3-dbg_3.0.4-7.dodes.0_sh4.deb と libstdc++3-dev_3.0.4-7.dodes.0_sh4.deb を追加で入れると コンパイルできるようになりました.


せっかくなので, セルフコンパイル環境の作り方を記しておきます. まぁ大本は 上記ページ の流用です...

  1. 以下のファイルを ここ から集める.
    ファイル名 場所
    base-sh4-020728.tar.gz base/
    binutils-dev_2.13.90.0.4-1_sh4.deb dists/sid/main/binary-sh4/devel/
    binutils-multiarch_2.13.90.0.4-1_sh4.deb dists/sid/main/binary-sh4/devel/
    binutils_2.13.90.0.4-1_sh4.deb dists/sid/main/binary-sh4/devel/
    cpp-3.0_3.0.4-7.dodes.0_sh4.deb dists/sid/main/binary-sh4/interpreters/
    cpp_3.0.4-8_sh4.deb dists/sid/main/binary-sh4/interpreters/
    g++-3.0_3.0.4-7.dodes.0_sh4.deb dists/sid/main/binary-sh4/devel/
    g++_3.0.4-8_sh4.deb dists/sid/main/binary-sh4/devel/
    gcc-3.0-base_3.0.4-7.dodes.0_sh4.deb dists/sid/main/binary-sh4/devel/
    gcc-3.0_3.0.4-7.dodes.0_sh4.deb dists/sid/main/binary-sh4/devel/
    gcc_3.0.4-8_sh4.deb dists/sid/main/binary-sh4/devel/
    libc6-dbg_2.2.5-14_sh4.deb dists/sid/main/binary-sh4/devel/
    libc6-dev_2.2.5-14_sh4.deb dists/sid/main/binary-sh4/devel/
    libc6-pic_2.2.5-14_sh4.deb dists/sid/main/binary-sh4/devel/
    libc6-prof_2.2.5-14_sh4.deb dists/sid/main/binary-sh4/devel/
    make_3.79.1-15_sh4.deb dists/sid/main/binary-sh4/devel/
    libstdc++3-dbg_3.0.4-7.dodes.0_sh4.deb dists/unstable/main/binary-sh4/devel/
    libstdc++3-dev_3.0.4-7.dodes.0_sh4.deb dists/unstable/main/binary-sh4/devel/
  2. 以下のコマンドを実行
    # mkdir /mnt/hda3/vroot
    # /mnt/hda3/broot
    # zcat base-sh4-020728.tar.gz | tar xvf -
    
  3. deb ファイルすべてを以下のコマンドで展開する
    # /mnt/hda3/vroot/usr/bin/dpkg-deb -x [deb ファイル] /mnt/hda3/vroot
    
  4. 適当な所に gccenv というファイルを作り, 以下の記述をして実行パーミションをつける
    /mnt/hda3/vroot/usr/sbin/chroot /mnt/hda3/vroot /bin/sh
    

後は 4 で作ったの gccenv を作るとセルフコンパイル環境になります. なお, 筆者は素の LANDISK を持ってないため本当にこれで構築できるか確認できません (まぁバックアップを元に戻せば可能ですが 面倒くさくて).

うまく行かない場合は 大本に書かれている 3, 4 の .profile 関係が足りないのでしょう.


2005.1