このページは「24環境」の情報です

RedHat9上でSH3クロスコンパイル環境を整える

CAT709 (SH3−Linux) 用のクロス開発環境の構築方法を紹介します。

はじめに

動作検証した環境

ホストOS     :RedHat9
ホストCPU    :i686 (DOS/V機)
ターゲットOS :Si-Linux Kernel 2.4.24
ターゲットCPU:SH3
binutils     :2.11.92
libc6        :2.2.5
gcc          :3.0.4

今回ホスト側PCのOSは新規にCD-ROMよりインストールしたもので、手動でパッケージ追加はしていません。
ノーマルな状態のままで動作すると思います。
ターゲット側は2005/04現在リリースのものです。
今回はRedHat9上で構築しましたが、大抵のディストリビューション上で動作すると思います。

手順

作業は簡単です。圧縮されたこのファイルをルート位置で展開するだけです。
展開すると下記のようなファイル構造が追加され、クロスビルド環境が完成します。

$ su
# cd /
# tar xvzf cross-compile-sh3-linux-rh9.tar.gz
/usr
    +--sh3-linux
    |   +--lib      (libc6 2.2.5 ライブラリ)
    |   +--include  (libc6 2.2.5 ライブラリヘッダ、カーネルヘッダ)
    |   +--bin      (binutils 2.11.92)
    +--lib
    |   +--gcc-lib
    |       +--sh3-linux
    |           +--3.0.4
    +--bin ※既存のフォルダ
      ("sh3-linux-*" というコンパイラ、リンカなどが追加されます。)

以上で準備が完了します。

#include <stdio.h>
int main()
{
   printf("hello world (gcc)\n");
}
$ sh3-linux-gcc hello.c
#include <iostream>
using namespace std;
int main()
{
   cout << "hello world (g++)\n";
}
$ sh3-linux-g++ hello.cpp

が正常に終了し a.out が作成されることを確認します。

ソース

上記クロス開発環境を作成した際のソースをここに置いておきます。
コンパイル手順の一例を簡単にメモしておきます。

  • binutils-2.11.92-sh3-linux.tgz
    $ cd ~
    $ tar xvzf binutils-2.11.92-sh3-linux.tar.gz
    $ cd binutils-2.11.92-sh3-linux
    $ mkdir build
    $ cd build
    $ ../configure --disable-nls --target=sh3-linux --prefix=/usr
    $ make
    $ su
    # make install
  • gcc-3.0.4-sh3-linux.tgz
    $ cd ~
    $ tar xvzf gcc-3.0.4-sh3-linux.tar.gz
    $ cd gcc-3.0.4-sh3-linux
    $ mkdir build
    $ cd build
    $ ../configure --prefix=/usr --target=sh3-linux --host=i686-pc-linux-gnu\~
    --build=i686-pc-linux-gnu --enable-languages=c,c++ --mandir=/usr/share/man\~
    --with-system-zlib --with-gxx-include-dir=/usr/sh3-linux/include/g++-v3\~
    --includedir=/usr/sh3-linux/include/ --disable-checking --with-x=no\~
    --enable-threads=posix --enable-long-long~
    $ make
    $ su
    # make install
Last-modified: 2019-07-22 (月) 17:56:00 (1739d)