SH用gccコンパイラをWindows VistaにてCygwin環境で構築する
2009年6月 2日 (火)
※この情報は2009年当時のOSでの説明となっております。リンク先も当時の者になります。
今回はSH用gccコンパイラをWindows VistaにてCygwin環境で構築いたします。
目的はTOPPERS OS(TOPPERS/JSP、TOPPERS/FI4、TOPPERS/ASPカーネル)用の開発環境を用意するためです。社内でのメモの意味もありますが、何かの参考になるのではと思い公開します。
1.はじめに
●概要
1)PCのOS:Windwos Vista
(Windows VistaでCygwinを構築するためには幾つかポイントがあります。
また、今回は同じ手順でWindows 2000とWindows XPでも試してあります。)
2)Cygwin DLL release version 1.5.25(2009年6月1日現在 最新)
3)binutils-2.16
4)gcc-core-3.4.5
(当
初はJSPカーネルが動作確認されているgcc-3.3にて構築しようとしていましたがWindows
2000/XP/Vista全てのOSで構築に失敗しました。以下の情報を参考にして修正を加えたら構築できましたが、あえて修正が必要なバージョンは避
けました。参考URL:https://www.toppers.jp/TOPPERS-USERS/200312/msg00017.html)
5)newlib-1.13.0
●ご注意
gccコンパイラはフリーコンパイラとして有名ですが、標準ライブラリを使用するとGPLまたはLGPLに該当してしまいます。簡
単に説明するとgccの標準ライブラリを使って作ったプログラムも、全て配布先の要求があればソースを公開しなければなりません。(LGPLの場合は、少
し緩くなります)またサイズ的にも大きいので、組込みではサイズがコンパクトでGPLよりも制限が緩いレッドハット社のnewlibが使われます。
(newlibを商用で使用する場合は必ずレッドハット社(http://www.jp.redhat.com/)のホームページにてライセンス条項を確認してください。)尚、TOPPERS OSのカーネルはライブラリを必要としませんので、ライブラリを使用しないという選択もあります。
2.Cygwinをインストールする
では、早速進めたいと思います。
まずはCygwinをインストールします。
Windows VistaでCygwinを動かすポイントは次の4点です。
1)管理者権限のユーザーアカウントでログインする
2)OSのユーザーアカウント制御をOFFにする
3)setup.exeを「管理者として実行する」で実行する
4)ショートカットも「管理者として実行する」で実行する
[手順]
●管理者権限のユーザーアカウントでログインする
●OSのユーザーアカウントをOFFにする
コントロールパネルにてユーザーアカウントをOFFにしてください。
●IEなどのブラウザでhttp://www.cygwin.com/を開きます
●右上の「Install Cygwin now」をクリックします
●setup.exeをディスクトップに保存します
●setup.exeを選択してマウスの右ボタンをクリックしてポップアップメニューから「管理者として実行(A)...」を選びます
●「セキュリティの警告」が出た場合は「実行」をクリックします。
●インストーラが起動したら「次へ(N)」をクリックして進みます
●「Install from Internet」を選択して「次へ(N)」をクリックして進みます
インターネットの回線が遅い環境の場合は「Download Without Installing」を選択した方が安定します。
「Install from Local Directory」はCD-ROMなどからインストールする時に選択しますので、今回は関係ありません。
●インストール先を選択して(問題なければ初期のc:\cygwinで・・・)「次へ(N)」をクリックして進みます
●インターネットの接続方法を選択して「次へ(N)」をクリックして進みます
Proxyサーバ経由の場合は「Use HTTP/FTP Proxy」を選択してホストとポートを設定します。
●インターネットの接続先を選択して「次へ(N)」をクリックして進みます
サイトはJPでring系を選択します。
今回はring系でなく「http://ftp.iij.ad.jp」を選択しています。
●インストールするパッケージを選択して「次へ(N)」をクリックして進みます
インストールするパッケージがわからない時は「all default」をクリックすると「all install」となり全てインストールします。
今回、選択したパッケージは以下の画面の通りです。
(クリックすると拡大します)
●インストールを開始します
インストールには1~2時間以上かかる場合があります。
●終了するとショートカットの作成とメニューの作成を聞いてきますので、どちらもチェックして完了してください。
●ショートカットまたはcygwin.batを選択してマウスの右ボタンをクリックしてポップアップメニューから「管理者として実行(A)...」を選びCygwinを起動します。
●「exit」と入力すると終了します。
以上でCygwinのインストールは終了です。
3.GNUツールをインストールする
次にGNUツールをインストールします。
GNUツールをインストールするためのポイントは次の3点です。
1)binutils、gcc、newlibの順で構築していく(必要に応じてその後gdb)
2)gccを構築する前にnewlibのソースを展開しておく
3)gccを構築する前にアセンブラのパスを通しておく
3-1.GNUツールをダウンロードする
1)ダウンロード先のフォルダを作成
●ショートカットまたはcygwin.batを選択してマウスの右ボタンをクリックしてポップアップメニューから「管理者として実行(A)...」を選びCygwinを起動します。
●Cygwinから次のように入力して新しいフォルダを作成します
$ cd /usr/local <return>
$ mkdir sh <return>
$ cd sh <return>
$ mkdir src <return>
$ cd src <return>
この /usr/local/sh/src に各ツールをダウンロードします。
2)binutilsをダウンロードする
binutilsはアセンブラやリンカなどのツール群の集まりです
●サイトhttp://ftp.gnu.org/gnu/binutils/ をブラウザで開きます
●「binutils-2.16.tar.bz2」をクリックします
●「保存」をクリックします
●ファイルの種類を「tarファイル」から「すべてのファイル」に変更して、ファイルの拡張子に「.bz2」を付けてファイル名が
「binutils-2.16.tar.bz2」になっているのを確認してc:\cygwin(またはcygwinインストール先)\usr\local
\sh\srcに保存します
3)gccをダウンロードする
gccもまた多くのツールが含まれたパッケージなので、今回はメインのツールのみ集めたgcc-coreをダウンロードします。
●サイトhttp://ftp.gnu.org/gnu/gcc/ をブラウザで開きます
●「gcc-3.4.5/」をクリックします
●「gcc-core-3.4.5.tar.bz2」をクリックします
●「保存」をクリックします
●ファイルの種類を「tarファイル」から「すべてのファイル」に変更して、ファイルの拡張子に「.bz2」を付けてファイル名が「gcc-
core-3.4.5.tar.bz2」になっているのを確認してc:\cygwin(またはcygwinインストール先)\usr\local\sh
\srcに保存します
4)newlibをダウンロードする
●サイトftp://sources.redhat.com/pub/newlib/ をブラウザで開きます
●「newlib-1.13.0.tar.gz」をクリックします
●「保存」をクリックします
●ファイルの種類を「gzファイル」、ファイル名が「newlib-1.13.0.tar」になっているのを確認してc:\cygwin(またはcygwinインストール先)\usr\local\sh\srcに保存します
3-2.ダウンロードしたファイルを展開する
●Cygwinから次のように入力して各ファイルを展開します。
$ cd /usr/local/sh/src <return>
$ tar jxvf binutils-2.16.tar.bz2 <return>
$ tar jxvf gcc-core-3.4.5.tar.bz2 <return>
$ tar zxvf newlib-1.13.0.tar.gz <return>
3-3.binutilsを構築する
●Cygwinから次のように入力して構築します(時間がかかります)
$ cd /usr/local/sh/src/binutils-2.16 <return>
$ mkdir obj <return>
$ cd obj <return>
$ ../configure --target=sh-hitachi-elf --prefix=/usr/local/sh --disable-nls <return>
$ make <return>
$ make install <return>
--target指定によりツール群の名前がsh-hitachi-elf-xxになります(TOPPERS/JSPno仕様からその名前にしました)。
--prefix指定により /usr/local/sh 下に構築されました。
パスは /usr/local/sh/bin で通します
3-4.PATHを設定する
1)環境変数に設定する場合
●Cygwinから次のように入力してください
$ echo 'export PATH=$PATH:/usr/local/sh/bin' >> ~/.bash_profile <return>
(フォントの関係で見えにくいかもしれませんが「 ~ 」はチルダです。ご注意ください。)
2)一時的に設定する場合
●Cygwinから次のように入力してください
$ export PATH=$PATH:/usr/local/sh/bin <return>
3-5.gccを構築する
●Cygwinから次のように入力して構築します(かなり時間がかかります)
$ cd /usr/local/sh/src/gcc-3.4.5 <return>
$ mkdir obj <return>
$ cd obj <return>
$
../configure --target=sh-hitachi-elf --prefix=/usr/local/sh
--with-gnu-as --with-gnu-ld --with-newlib
--with-headers=/usr/local/sh/src/newlib-1.13.0/newlib/libc/include <return>
$ make <return>
$ make install <return>
3-6.newlibを構築する
●Cygwinから次のように入力して構築します(かなり時間がかかります)
$ cd /usr/local/sh/src/newlib-1.13.0 <return>
$ mkdir obj <return>
$ cd obj <return>
$ ../configure --target=sh-hitachi-elf --prefix=/usr/local/sh <return>
$ make <return>
$ make install <return>
3-7.構築の確認
●Cygwinから次のように入力してgccのバージョン情報が出たら完了です
$ sh-hitachi-elf-gcc -v <return>
追記(2009.06.03)
Cygwinの環境(c:\cygwin)を別のPCにコピーしてcygwin.batを起動した場合、ユーザーアカウントが変わったためエラーが出ます。このような場合、以下に様にすればアカウントを再構築してくれます。
$ mkpasswd -l > /etc/passwd <return>
$ mkgroup -l > /etc/group <return>
続・追記(2009.06.03)
Windows Vistaで構築する際、Core2 Duoのメモリ2Gバイトのノートで構築しましたが、同じことをWindows
2000のノート(Pentium4
メモリ256Mバイト)の2倍時間がかかってしまいました。このことを考えると最新のノートではなく社内で使われていないPCを利用するのもいいかもしれ
ません。