home

セルフコンパイル環境の構築方法
あらかじめ用意されていないプログラムをコンパイルするには、 x86 プラットフォームの上でクロスコンパイルする方法と、 Linux-VR マシン上でセルフコンパイルする方法があります。
前者はコンパイルが高速でよさげなのですが、パッケージに 含まれるソースから生成したバイナリを実行してその後の処理をおこなう ようなものも多く、手っ取り早くコンパイルするにはセルフコンパイル の道をおすすめします。
ここではセルフコンパイル環境の構築方法を簡単に説明します。
このページに記述されていない、いろいろな Tips に関しては、 linuxce-jp ML の過去ログを参照してください。

まず最初に
セルフコンパイル環境を構築するにはかなり大きめの記憶装置が必要と なります。最低限 128MB の CF が必要でしょう。
筆者としては、IBM の MicroDrive (340MB)などの使用をおすすめします。
さて、まずは...
こちら を参照して、通常のユーザランドをインストールしてください。

セルフコンパイル環境構築の手順
以下は、すべて Linux-VR マシンの上で実行します。

RPM ファイルのインストールには:
rpm -ivh xxxx.rpm (インストール)
または
rpm -Uvh xxxx.rpm (アップグレード)
を実行してください。
  1. まず、binutils がインストールされていることを確認してください。
    [root@z50]$ rpm -qa | grep binutils
    binutils-2.8.1-2D1
    
    インストールされていない時には、 こちらからダウンロードしてインストールします。

  2. 最低限の開発系ツールをインストールします。 こちら(ftp.linux.sgi.com)から以下のものをダウンロードしてインストールします。
    egcs-1.0.2-9.mipsel.rpm
    glibc-devel-2.0.7-20.mipsel.rpm
    gdb-4.17-3.mipsel.rpm
    patch-2.5-4.mipsel.rpm
    make-3.76.1-3.mipsel.rpm
    diffutils-2.7-11.mipsel.rpm
    libstdc++-2.8.0-9.mipsel.rpm
    
    次に こちら(Kondara-1.1ベース)から以下のものをダウンロードしてインストール します。
    mipsel/libtool-1.3.4-1k2.mipsel.rpm
    mipsel/gdbm-1.8.0-2k1.mipsel.rpm
    mipsel/tcsh-6.09.01-1k2.mipsel.rpm
    mipsel/m4-1.4-12k1.mipsel.rpm
    mipsel/perl-5.00503-7.mipsel.rpm
    noarch/automake-1.4-5k.noarch.rpm
    noarch/autoconf-2.13-6.noarch.rpm
    

  3. /usr/include/{linux}{asm-mips}
    現在のLinux-VRカーネルソースから include ファイルをコピーします。
    Linux-VR カーネルソースの:
    linux/include/linux/
    と、
    linux/include/asm-mips/
    を、/usr/include にコピーします。
    また、この後に:
        cd /usr/include ; ln -s asm-mips asm
    しておきます。
    

  4. socketbits.h/resourcebits.h の変更
    include ファイル回りにちょっと不整合があるので、 /usr/include/socketbits.h に、以下を追加します。
    #define SO_PEERNAME             28
    /* Types of sockets.  */
    #define SOCK_DGRAM 1            /* Connectionless, unreliable datagrams
                                       of fixed maximum length.  */
    #define SOCK_STREAM 2           /* Sequenced, reliable, connection-based
                                       byte streams.  */
    #define SOCK_RAW 3              /* Raw protocol interface.  */
    #define SOCK_RDM 4              /* Reliably-delivered messages.  */
    #define SOCK_SEQPACKET 5        /* Sequenced, reliable, connection-based,
                                       datagrams of fixed maximum length.  */
    #define SOCK_PACKET 10          /* Linux specific way of getting packets at
                                       the dev level.  For writing rarp and
                                       other similar things on the user level.  */
    
    また、/usr/include/resourcebits.h もちょっと変更します。
    こんな感じ:
    #undef RLIM_INFINITY
      RLIM_INFINITY = (long int)(~0UL >> 1)
      #define RLIM_INFINITY RLIM_INFINITY
    

  5. 完了
    これでとりあえず、セルフコンパイル環境ができあがったと思います。
    rpm --rebuild などを実行するといろいろと足りないものを要求されるかも しれませんが、その場合には適宜、 ここや、 ここ以下のディレクトリから RPM ファイルを追加して前進してください。
    Happy hacking!!

  6. ランダムメモ
    もしかすると このメモ も役に立つことがあるかも...