kyoyaの日記: ● 5.3R - VM5.2.1 - arm-elfクロスコンパイル環境
■ 用意するもの(もっとあるかもしれないが)
bash (bash-3を入れました)
gmake を用意 // FreeBSDの場合
gettext
■ 環境変数 (csh)
setenv PROJECT arm-elf
setenv PRJROOT ${HOME}/${PROJECT}
setenv TARGET arm-elf
setenv PREFIX ${PRJROOT}/tools
setenv TARGET_PREFIX ${PREFIX}/${TARGET}
setenv PATH ${PREFIX}/bin:${PATH}
■ クロスコンパイル用binutilsのインストール
tar zxf binutils-2.15.tar.gz
cd binutils-2.15
mkdir $TARGET
cd $TARGET
../configure --target=$TARGET --prefix=$PREFIX
gmake
gmake install
rehash
cd ../..
■ 1st-gcc作成
fetch ftp://ftp.dti.ad.jp/pub/lang/gcc/releases/gcc-3.3.1/gcc-3.3.1.tar.bz2
tar zxf gcc-3.3.1.tar.gz
cd gcc-3.3.1
mkdir $TARGET
cd $TARGET
../configure --target=$TARGET --prefix=$PREFIX --disable-shared --disable-threads --enable-languages=c --with-gnu-as --with-gnu-ld
gmake all-gcc
gmake install-gcc
cd ../..
■ C標準ライブラリとしてnewlibを試してみる
fetch ftp://sources.redhat.com/pub/newlib/newlib-1.13.0.tar.gz
tar zxf newlib-1.13.0.tar.gz
cd newlib-1.13.0
mkdir $TARGET
cd $TARGET
../configure --target=$TARGET --prefix=$PREFIX
gmake
gmake install
cd ..
■テスト
> setenv PATH $PREFIX/arm-elf/bin:$PATH
> cat a.c
#include
main{
printf("Hello World\n");
}
> gcc -v
/home/kyoya/arm-elf/tools/lib/gcc/arm-elf/3.4.3/specs から spec を読み込み中
コンフィグオプション: /home/kyoya/in/gcc-3.4.3/configure --target=arm-elf --prefix=/home/kyoya/arm-elf/tools --disable-shared --disable-threads --enable-languages=c --with-gnu-as --with-gnu-ld
スレッドモデル: single
gcc バージョン 3.4.3
> gmake a CC=arm-elf-gcc
> file a
a: ELF 32-bit LSB executable, ARM, version 1 (ARM), statically linked, not stripped
ただしLinuxではsegmentation fault
● 5.3R - VM5.2.1 - arm-elfクロスコンパイル環境 More ログイン