热门关键字:  ubuntu  分区  函数  Fedora  linux系统进程

构造arm-linux交叉编译工具链(Tool Chain)

来源: 作者: 时间:2007-12-11 Tag: 点击:

4. Linux kernel header files (This step creates the arm-specified header files for glibc)
tar -zxvf linux-2.6.17.tar.gz
cd linux-2.6.17
make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig
make include/linux/version.h
cp -dR include/linux $PREFIX/arm-linux/include/
cp -dR include/asm-generic $PREFIX/arm-linux/include/
cp -dR include/asm-arm $PREFIX/arm-linux/include/
mv $PREFIX/arm-linux/include/asm-arm $PREFIX/arm-linux/include/asm

5. glibc-2.3.6
tar -zxvf glibc-2.3.6.tar.gz
tar -zxvf glibc-linuxthreads-2.3.6.tar.gz –directory ./glibc-2.3.6
patch -p1 -d glibc-2.3.6 < patches/5090_all_divdi3-asm-fix.patch
patch -p1 -d glibc-2.3.6 < patches/6200_all_arm-glibc-2.3.6-ioperm.patch
patch -p1 -d glibc-2.3.6 < patches/6230_all_arm-glibc-2.3.6-socket-no-weak-lias.patch
patch -p1 -d glibc-2.3.6 < patches/gcc_eh.patch.cross
mkdir arm-linux
cd arm-linux
CC=arm-linux-gcc AR=arm-linux-ar RANLIB=arm-linux-ranlib LD=arm-linux-ld ../configure –target=arm-linux –prefix=$PREFIX/arm-linux –host=arm-linux –enable-add-ons=linuxthreads –enable-shared –with-headers=$PREFIX/arm-linux/include
make
make install

6. gcc-3.4.6 full version (with glibc, support C/C++)
cd gcc-3.4.6
Change ./gcc/config/arm/t-linux back to original
cd arm-linux
../configure –target=arm-linux –prefix=$PREFIX –program-prefix=arm-linux- –enable-multilib –with-headers=$PREFIX/arm-linux/include –enable-languages=c,c++
make
make install

自此,整个arm-linux的工具链也就生成了

Issue: I encounted one problem when I cross-compiled arm gcc, the log in the following

checking for arm-linux-gcc… /root/gcc-4.2.2/arm-linux/./gcc/xgcc -B/root/gcc-4.2.2/arm-linux/./gcc/ -B/arm-linux/bin/ -B/arm-linux/lib/ -isystem /arm-linux/include -isystem /arm-linux/sys-include
checking for C compiler default output file name… configure: error: C compiler cannot create executables
See `config.log’ for more details.
make[1]: *** [configure-target-libmudflap] Error 1
make[1]: Leaving directory `/root/gcc-4.2.2/arm-linux’
make: *** [all] Error 2

config.log

This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

configure:630: checking host system type
configure:651: checking target system type
configure:669: checking build system type
configure:724: checking for a BSD compatible install
configure:777: checking whether ln works
configure:801: checking whether ln -s works
configure:1866: checking for gcc
configure:1979: checking whether the C compiler (gcc ) works
configure:1995: gcc -o conftest conftest.c 1>&5
configure:2021: checking whether the C compiler (gcc ) is a cross-compiler
configure:2026: checking whether we are using GNU C
configure:2054: checking whether gcc accepts -g
configure:2121: checking for gnatbind
configure:2186: checking whether compiler driver understands Ada
configure:2218: checking how to compare bootstrapped objects
configure:2338: checking for correct version of gmp.h
configure:2351: gcc -c -g -O2 conftest.c 1>&5
configure:2364: checking for correct version of mpfr.h
configure:2378: gcc -c -g -O2 conftest.c 1>&5
configure:2368:18: error: mpfr.h: No such file or directory
configure:2371:36: error: missing binary operator before token “(”
configure: failed program was:
#line 2366 “configure”
#include “confdefs.h”
#include “gmp.h”
#include <mpfr.h>
int main() {

#if MPFR_VERSION < MPFR_VERSION_NUM(2,2,1)
choke me
#endif

; return 0; }
configure:2392: checking for any version of mpfr.h
configure:2402: gcc -o conftest -g -O2 conftest.c -lmpfr -lgmp 1>&5
configure:2396:18: error: mpfr.h: No such file or directory
configure: In function ‘main’:
configure:2398: error: ‘mpfr_t’ undeclared (first use in this function)
configure:2398: error: (Each undeclared identifier is reported only once
configure:2398: error: for each function it appears in.)
configure:2398: error: expected ‘;’ before ‘n’
configure:2398: error: ‘n’ undeclared (first use in this function)
configure: failed program was:
#line 2394 “configure”
#include “confdefs.h”
#include <gmp.h>
#include <mpfr.h>
int main() {
mpfr_t n; mpfr_init(n);
; return 0; }

最新评论共有 4 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册