TARGET: armeb-linux2.4 BUILD: i686-pc-linux-gnu gcc (GCC) 3.4.3 20050227 (Red Hat 3.4.3-22.fc3) ---- ヘッダーを準備する。 ---- 既存のarm-linux(little endian)用のtoolchainを持ってきます。 (初めてcross-gccをコンパイルするときだけ行います) wget ftp://ftp.arm.linux.org.uk/pub/armlinux/toolchain/cross-2.95.3.tar.bz2 cd /usr/local mkdir arm cd arm tar xvfj ~masa/cross-3.0.tar.bz2 ヘッダーをコピーします。 cd /usr/local mkdir armeb-linux2.4 cd armeb-linux2.4 cp -dR /usr/local/arm/2.95.3/arm-linux/include . Linuxカーネルのヘッダーを作ります。 tar xvfz linux-2.4.19.tar.gz cd linux-2.4.19 Makefile を修正します。 ... #ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/a rm/ -e s/sa110/arm/) ARCH := arm .. CROSS_COMPILE := armeb-linux2.4- configします。すべての問いに、Enterキーを押します。 make config make dep エラーになりますがそのままにします。 make include/linux/version.h エラーになりますがそのままにします。 cd .. linuxカーネルのヘッダーをコピーします。 cd /usr/local/armeb-linux2.4/include cp -dR ~masa/src/linux-2.4.19/include/asm-arm ./asm cp -dR ~masa/src/linux-2.4.19/include/linux ./linux cd .. chmod 777 . ---- コンパイルする ---- gccのパッケージを解凍します。 cd tar xvfz gcc-core-2.95.3.tar.gz パッチ(http://masasoft.ddo.jp/arm-linux/doc/gcc-2.95.3-armeb.patch.txt)を当てます。 cd gcc-2.95.3 patch -p0 < gcc-2.95.3-armeb.patch ビルド用のディレクトリを作ります。 mkdir build-gcc-2.95.3 configureスクリプトを実行します。 cd build-gcc-2.95.3 ../gcc-2.95.3/configure --target=armeb-linux2.4 --enable-languages=c --prefix=/usr/local --with-cpu=strongarm1100 --with-tune=strongarm1100 --with-headers=/home/masa/src/linux-2.4.19/include (glibcをまだインストールしていないときは、--disable-threads もつけます) コンパイルします make CFLAGS_FOR_TARGET='-O2 -mbig-endian -mcpu=strongarm1100 -mtune=strongarm1100' ---- インストールする ---- glibcをまだインストールしていないときは、最初にコピーしたヘッダーファイルを移動しておきます。ただし、stubs.hだけ残しておきます。 cd /usr/local/armeb-linux2.4 mv include include.old cp include.old/gnu/stubs.h include/gnu インストールします。 make install