How to build toolchain

17 views
Skip to first unread message

lug...@gmail.com

unread,
Mar 4, 2008, 9:56:39 AM3/4/08
to 簡單進入ARM
1. 取得資源;

需要的 Source code Package 有 BinUtility(ld,objdump,objcopy..), GCC ,
GLIBC, LinuxKernel(編譯glibc時所需)
1. 先到 http://www.gnuarm.com/ 抓取我們要的 Tool chain source code,
在'GCC-4.1 toolchain' 那一列下方 抓取
binutils-2.17.tar.bz2,gcc-4.1.1.tar.bz2,newlib-1.14.0.tar.gz
2. 再到linux kernel 網站 ftp://ftp.kernel.org/pub/linux/kernel/ 抓取
linux 2.6.15.7 的source code.


2. 建立工作環境

1. 在root 建立一個Cross tool 編譯以及使用的地方 ;
mkdir /cross_compile
2. 再繼續在cross_compile下建立3個folders 分別是build-tools(編譯時所需要的空間), kernel
(放kernel source
code
的地方), tools(放置 編譯後所產生的binary).
mkdir /cross_compile/kernel /cross_compile/tools /
cross_compile/build-tools
3. 為了要讓編譯的工作地方和source code分開 所以繼續在 build-tools下, 建立編譯用的folders
mkdir /cross_compile/build-tools/build-binutils /
cross_compile/build-tools/build-boot-gcc
/cross_compile/build-tools/build-gcc /
cross_compile/build-tools/build-glibc
4. 把抓到的 source code package 一一tar 到 /cross_compile/build-tools/ 路徑
下.
5. 設定好編譯所需要的環境變數
export PRJROOT=/Crosstool ; export TARGET=arm-linux ; export
PREFIX=$PRJROOT/tools;
export TARGET_PREFIX=$PREFIX/$TARGET

3. 開始編譯

1. 先編譯 Binutility, 到/cross_compile/build-binutils目錄下,configure 編譯環
境, 輸入
../binutils-2.17/configure --target=$TARGET --prefix=$PREFIX
2. make binutility 並且 安裝, 安裝好後會發現在 /cross_compile/tools/bin下發現編譯好的工
具,
arm-linux-gcc,arm-linux-ld ,.............................
make; make install
3. 接下來編譯 boot strap gcc 到/cross_compile/build-gcc 下, configure 編譯環
境, 輸入
../gcc-4.1.1/configure --target=$TARGET --prefix=$PREFIX --
without-headers --enable-languages=c
--disable-threads --with-gnu-ld --with-gnu-as --disable-shared
--disable-multilib --with-newlib --disable-nls
--enable-symvers=gnu --enable-__cxa_atexit
4. make 並安裝, 就會在/cross_compile/tools/bin 下發現arm-linux-gcc
make all-gcc(記的要用這個target 不然會去編譯其他的glib 而發生一些錯誤), make install-
gcc.

4. 總結
靠這個boot strap gcc 我們就可以編譯出u-boot 以及kernel的image , 只要是不靠glibc的image
皆可.
glibc 以及 full gcc的編譯方式會在下次寄出來.

Lee Kuo-hua

unread,
Mar 4, 2008, 8:38:02 PM3/4/08
to easy...@googlegroups.com
 
腐哥好認真呀!
                                           Gary

 
2008/3/4 <lug...@gmail.com>:
Reply all
Reply to author
Forward
0 new messages