binutils:
README 中沒有說明configure時可以用的option 有哪些,當然,也沒說明cross-build的方法。
在configure中看到
./configure --help會列出簡略的build option。
但是沒說--enable, --dieable 可以用的option 有哪些..(大概知道要enable, disable哪些東西的人自然就會 知道吧 :p)。
Nelson's Notes中的
- --target=arm-elf
- --prefix=/gnutools
./configure --prefix=/gnutools --target=arm-elf很順利,產生Makefile,
之後
make allinstall path在/gnutools,所以要是root:
sudo make install到install path (gnutools) 去看,可以看到binutil 已經裝好了。
接著作gcc...
download gcc-core和g++,unpack (g++會unpack到core中)。
看一下README,再看看FAQ,,需要autoconfig,先安裝autoconf。
grep 一下出現arm的地方..
在INSTALL目錄有比較詳細的安裝說明,是html格式的,從index.html開始看起。
- --target=arm-elf
- --with-gnu-as:
說明系統使用gnu assembler,make process會去尋找build時需要的assembler,如果找到的assembler 不是gnu,卻指定了這個option,會產生conflict。
同理,如果找到的assembler 是gnu,卻沒有指定這個option,也會有conflict。
assembler 包含在binutility。 - --with-gnu-ld
和--with-gnu-as的意思一樣。說明ld的程式版本。
- --with-headers=dir
作cross build時,必須要用這個option 指定target使用的hear files所在的位置。如果 prefix/target/sys-include 目錄不存在的話,build process會將這個option 指定的header修正後,copy到gcc 安裝目錄。 - --with-libs="dir1 dir2 .... dirN"
說明target 所用的libary 所在位置,build 過程中會將這些library copy到gcc 安裝位置。 - --with-newlib
指定使用newlib。
可以參考crosstools的script...
做到這裡,開始懷疑這個步驟和自己的觀念...
先暫停一下..