以前(id:NeoCat:20070819)構築した、LS-GL用のクロスコンパイル環境を使って、LS-GL本体で動作するセルフコンパイル環境を作りました。やはりネイティブ環境でしかビルドできないソフトもあるので。
やり方は以下の通り。
1. 環境設定とソースコードのインストール
まずは、id:NeoCat:20071020 の最初に書いたように、環境変数を設定しておきます。
そうしておいて、バッファローから送ってもらったLS-GLのソースコードCDから、binutils-2.17pre-1.src.rpmとgcc-2005q3-2.src.rpmをインストール。ユーザ権限でコンパイルできるよう、所有者をかえておきます。
% sudo rpm -ivh binutils-2.17pre-1.src.rpm gcc-2005q3-2.src.rpm % sudo chown -R NeoCat /usr/local/src/redhat/*
2. binutilsのビルド
configure & make & make install。クロスコンパイル環境にObjective-Cが含まれていないためか、途中で「Objective-Cはサポートされていません」といってエラーになってしまうため、Objective-Cと思われるファイルを取り除いてビルドする必要がありました。一時的にDesktopにインストールし、後でアーカイブします。
% cd /usr/local/src/redhat/SOURCE/ % tar jxf binutils-2.17pre.tar.bz2 % cd binutils-2.17pre % ./configure --build=powerpc-apple-darwin8.10.0 \ --target=arm-none-linux-gnueabi --host=arm-none-linux-gnueabi % make (「Objective-Cはサポートされていない」というエラーになる) % cd gprof % mkdir m % mv *.m m % cd .. % make % make install DESTDIR=~/Desktop/packages
3. gccのビルド
こちらも、基本はconfigure & make & make install。ただし、libibertyのincludeファイルのパス解決に問題があるようで、includeディレクトリのシンボリックリンクを作ってあげる必要があります。
% cd /usr/local/src/redhat/SOURCE/ % tar jxf gcc-2005q3.tar.bz2 % cd gcc-2005q3 % ./configure --enable-languages=c,c++ --build=powerpc-apple-darwin8.10.0 \ --target=arm-none-linux-gnueabi --host=arm-none-linux-gnueabi \ --disable-sanity-checks --disable-libstdcxx-pch --disable-multilib --disable-nls \ --enable-shared --enable-c99 --enable-long-long --enable-__cxa_atexit \ --enable-threads=posix --with-cpu=arm926ej-s --with-gnu-ld --with-gnu-as % make (../include/xregex.h がないと言って止まる) % cd build-powerpc-apple-darwin8.10.0/ % ln -s ../include . % cd .. % make (再び../include/xregex.h がないと言って止まる) % cd arm-none-linux-gnueabi % ln -s ../include . % cd .. % make % make install DESTDIR=~/Desktop/packages
4 アーカイブ作成
作ったものの所有者をroot:wheelにした上で、tarで固めます。ついでに、glibc-develのrpmをほどいてtarで固め直しておきます。
% cd ~/Desktop/packges % chown -R root:wheel usr % tar czf ../gcc-2005q3-2-arm-none-linux-gnueabi.tar.gz usr % cd .. % sudo rpm -ivh --force --ignoreos --ignorearch --relocate /=${HOME}/Desktop/ \ glibc-devel-arm_trg-2005q3-2.arm.rpm % cd ~/Desktop % tar czf glibc-devel-arm_trg-2005q3-2.tar.gz usr
5 インストール
作った2つのアーカイブをLS-GLにscp等でコピーし、rootでログインし、"-C /"オプション付きで展開します。なお、/usr/local/ 内のファイルを一部上書きしてしまうので、事前にバックアップしておきましょう。
これで、何かコンパイルしてみて、無事動けば成功です。
% zed test.c #include <stdio.h> #include <stdlib.h> main() { printf("Hello,World!\n"); exit(0); } (^Jで保存) % gcc test.c % ./a.out Hello,World! %
めでたしめでたし。