2012年6月27日 星期三

Building final GCC Cross Compiler ....

終於.... 最後一的動作了 .... 編譯好這個....就完成了 !!
這個 Toolchain 就可以去編譯其他 lib or packages 了 (busybox , zlib 等) !!

一樣 , 我們採用 在 source tree 外部編譯 , mkdir 一個新的資料夾 .
進入資料夾並開始執行 configure.

LDFLAGS="-Wl,-rpath=${PREFIX}/$(TOOLCHAIN_DIR)/lib" \
$(SRC_VERSION)/configure \
--prefix=$(PREFIX)/$(TOOLCHAIN_DIR) \
--build=$(CLFS_HOST) --host=$(CLFS_HOST) --target=$(CLFS_TARGET) \
--with-sysroot=$(SYSROOT_PATH) \
--with-gmp=$(PREFIX)/$(TOOLCHAIN_DIR) \
--with-mpfr=$(PREFIX)/$(TOOLCHAIN_DIR) \
--with-ppl=$(PREFIX)/$(TOOLCHAIN_DIR) \
--with-cloog=$(PREFIX)/$(TOOLCHAIN_DIR) \
--disable-nls --disable-multilib \
--enable-c99 --enable-long-long --enable-threads=posix \
--enable-__cxa_atexit \
--enable-languages="c,c++"


這時候 GCC 會使用 eglibc 的一些基本 lib , 為了可攜 , 所以不要忘記 -rpath 指令.

這次就直接 make 了 , 不用只make 一部分 ...
一樣直接 make install .....

不過因為有些 AP 在執行的時候會需要 libgcc_s.so 和 libstdc++.so , 所以多複製一份
這兩個 library 到 lib 資料夾中 , 可以在Makefile 中執行下列段落 !!


final_install:
$(Q)cp -d $(PREFIX)/$(TOOLCHAIN_DIR)/$(CLFS_TARGET)/lib/libgcc_s.so* $(PREFIX)/lib
$(Q)cp -d $(PREFIX)/$(TOOLCHAIN_DIR)/$(CLFS_TARGET)/lib/libstdc++.so* $(PREFIX)/usr/lib
$(Q)cp -d $(PREFIX)/$(TOOLCHAIN_DIR)/$(CLFS_TARGET)/lib/libstdc++.so* $(PREFIX)/lib




沒有留言:

張貼留言