1.1 はじめに |
対象とするCPUやツールは次のとおり:
CPU | ARM(XScale含む) |
Kernel | Linux-2.6.9 |
binutils | binutils-2.14 |
glibc | glibc-2.3.2 |
gcc | gcc-3.4.2 |
remark: これらのバージョンは、個々に眺めると最新ではありません(例えばbinutils-2.15が最新)。しかし、binutils-2.15ではglibc-3.4.2がコンパイルできないなど、いろいろと不具合があります。
ここでは、glibcの最新バージョンをコンパイルすることを最優先事項として、binutilsやgccのをバージョンを選択しました。
1.2 開発環境 |
1.2.1 ユーザ
"developer"というユーザを作成し、クロス開発はユーザ"developer"が行うこととします。1.2.2 環境変数
ユーザ"developer"には、以下の環境変数を設定してください。export PROJECT=arm-cross export PRJROOT=${HOME}/${PROJECT} export TARGET=arm-linux export PREFIX=${PRJROOT}/tools export TARGET_PREFIX=${PREFIX}/${TARGET} |
環境変数"PATH"は、ブートストラップ用gccの作成までは次のようにし、
export PATH=/sbin:/bin:/usr/sbin:/usr/bin:${PREFIX}/bin:${PATH} |
export PATH=${PREFIX}/bin:${PATH} |
1.3 Kernel Header |
編集前: CROSS_COMPILE ?= 編集後: CROSS_COMPILE ?= arm-linux- |
1.4 binutils-2.14 |
1.5 glibc-2.3.2のheader file |
1.6 gcc-3.4.2 (ブートストラップcc) |
1.7 glibc-2.3.2 |
編集前: ***BUG in libc/scripts/output-format.sed *** elf32-bigarm,elf32-littlearm GROUP ( /lib/libc.so.6 /lib/libc_nonshared.a ) 編集後: GROUP ( libc.so.6 libc_nonshared.a ) |
remark: "***BUG in libc/s..."は全行削除します。
1.8 gcc-3.4.2 |
1.9 kernel-2.6.9 |