パスワードを忘れた? アカウント作成
398855 journal

kyoyaの日記: ● 5.3R - VM5.2.1 - arm-elfクロスコンパイル環境

日記 by kyoya

参考

■ 用意するもの(もっとあるかもしれないが)
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

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

身近な人の偉大さは半減する -- あるアレゲ人

読み込み中...