gcc-3.4.5クロス環境(2)
もうひとつの方法は、SHARPが提供するglibcを使う方法です。たたかうデジタリアンさんや、ぴろさんなどが詳しいので、細かい説明は割愛します。
前述のglibcへの依存関係の問題がない、というメリットがあります。
# 環境設定 # $PREFIX 以下にクロス環境を生成。クロスビルド用のヘッダ・ライブラリを # $PREFIX/$TARGET/{include,lib} にインストールする PREFIX=/opt/Embedix/gcc-3.4.5-xscale/ TARGET=arm-linux #(1) binutils-2.16.1 tar jxvf binutils-2.16.1.tar.bz2 cd binutils-2.16.1 ./configure \ --prefix=$PREFIX \ --target=$TARGET \ --enable-targets=xscale-linux-elf make make install cd - # 以後、ビルドしたbinutils(arm-linux-{ar,as,ld}など)を使うために PATHを変更しておく PATH=$PREFIX/bin:$PATH #(2) linux-headers (スペシャルカーネル) # 1.パッチを当てて、 2.configファイルを用意し、 3. make oldconfig # したカーネルソースを用意しておく ( linux-2.4.20_v18h.tar.bz2 とする) tar jxvf linux-2.4.20_v18h.tar.bz2 mkdir -p $PREFIX/$TARGET/include/ cp -r linux/include/asm-arm $PREFIX/$TARGET/include/asm cp -r linux/include/linux $PREFIX/$TARGET/include/ #(3) glibc-2.2.2 (SHARPが提供するglibc) # pthread.h,sigthread.h のバグを修正するためのパッチ # (glibc-arm-2.2.2-0.patch) を用意したので、適応しておく rpm2cpio glibc-arm-2.2.2-0.i386.rpm | cpio -ivd patch -p1 < glibc-arm-2.2.2-0.patch cp -r opt/Embedix/tools/arm-linux/include $PREFIX/$TARGET/ cp -r opt/Embedix/tools/arm-linux/lib $PREFIX/$TARGET/ # (4) gcc-3.4.5 tar jxvf gcc-3.4.5.tar.bz2 # crosstool-0.42 のパッチを利用する tar zxvf crosstool-0.42.tar.gz for p in crosstool-0.42/patches/gcc-3.4.5/*.patch do patch -p1 -d gcc-3.4.5/ < $p done # configureオプション # --disable-shared : 共有ライブラリ(.so)を作成しない # --with-cpu=xscale --enable-cxx-flags=-mcpu=xscale : xscale->iwmmxt も可 cd gcc-3.4.5 mkdir arm-xscale-cross ; cd arm-xscale-cross CC=gcc \ ../configure \ --prefix=$PREFIX \ --target=$TARGET \ --host=i686-linux \ --with-cpu=xscale \ --enable-cxx-flags=-mcpu=xscale \ --enable-languages=c,c++ \ --disable-shared make make install
ファイル:
- binutils-2.16.1.tar.bz2 (お近くのringサーバ)
- gcc-3.4.5.tar.bz2 (お近くのringサーバ)
- glibc-arm-2.2.2-0.i386.rpm (ザウルス宝箱)
- crosstool-0.42.tar.gz (Dan Kegel's Web Hostel)
- linux-2.4.20_v18h.tar.bz2 (スペシャルカーネルのパッチを適応したカーネルソース)
- glibc-arm-2.2.2-0.patch
参考:
- たたかうデジタリアン (gcc-3.2.1-xscale)
- ぴろのぺーじ - クロスコンパイル編 (gcc-3.3.1-xsacle)
- Mathemattical Information Technology (gcc-3.2.3-strongarm1100)
- はけの徒然日記 (gcc-3.4.6-xscale)
- Soon Hot, Soon Cold. (gcc-4系)