| 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 |