制作mipsel-linux交叉编译工具2

编译静态gcc
    因为这时还没有MIPS的glibc库可以使用,只能编译一个最简单的gcc,用这个gcc编译出glibc后就可以再编译一个完整的gcc了。glibc是个共享库,而这时的gcc不能支持glibc,因此,这个gcc也叫“静态gcc”,从另一个角度看,这时的gcc是个简单的gcc,是为了生成后继的完成的gcc而做的。因此,也被称为“自举gcc”。
    如果只是为了编译Linux核心代码,完成这个步骤就可以了。
(a)解压缩,得到源代码。
cd /home/crosstool/tmp
tar xvfz ../gcc-3.2.tar.gz
(b)完成配置和编译。这时,建立目录mipsel-linux-static来进行工作。而在下面的工作中,会在同一位置建立另一个目录,用于完整版gcc的编译;--prefix使用和上面步骤一样的设置,可使工具成套安装协同工作;--disable-shared表示不能使用glibc;--with -headers是重要的,它指出编译时,要使用在之前准备好的头文件
cd gcc-3.2
mkdir mipsel-linux-tatic
cd mipsel-linux-static
../configure --target=mipsel-linux --enable-languages=c
 --prefix=/usr/local/cross-gcc/mipsel-linux
 --disable-shared
 --with-headers=/home/crosstool/tmp/include
在configure过程中,可以看到输出这样的一条信息:
Copying /home/crosstool/tmp/include to /usr/local/cross--gcc/mipsel-linux/mipsel-linux/sys-include
表明.已将指定的头文件/home/crosstool/tmp/include
复制到目标位置/usr/local/cross-gcc/mipsel-linux/mipsel-linux/sys-include使用。这点是重要的,在后面的步骤中还要用到这个目录。
make
make install

编译glibc
    现在,用前面生成的gcc和binutils来生成能工作于目标平台MIPS的glibc库。
(a)解压缩,得到源代码
cd /home/crosstool/tmp
tar xvfz ../glibc-2-2.5.tar.gz
(b)完成配置和编译
cd glibc-2.2.5
patch-i ../../gibc-2.2.5-mips-build-gmon.diff
如果报告有文件找不到,只要回答一下正确的文件名,帮其找到。
tar -xzf ../../glibc-linuxthreads-2.2.5.tar.gz
mkdir mipsel-glibc
cd mipsel-glibc
CFLAGS="-O2 -g -finline-limit=10000"
../configure --build=i686-linux
--host=mipsel-linux
--enable-add-ons
--prefix=/usr/local/cross-gcc/mipsel-linux
--build表示在i686-linux上编译glibc;--host表示glibc是用mipsel-linux格式的;--prefix的和前面的步骤有一样的含义。
make
make install install root=/home/crosstool/tmp/glibc-2.2.5-inst
先安装在一个临时的位置。再将文件传过去。
(c)将生成的lib传送到指定位置
将lib传到/usr/local/cross-gcc/mipsel-linux/mipsel-linux/lib
cp -r/home/crosstool/tmp/glibc-2.2.5-inst/usr/local/cross-gcc/mipsel-linux/lib/
/usr/local/cross-gcc/mipsel-linux/mipsel-linux/
这个位置就是前面谈到的mipsel-linux-ld会搜索的目录。
(d)修改libc.so中的路径
vi /usr/local/cross-gcc/mipsel-linux/mipsel-linux/lib/libe.so 校正其中两个文件的路径

GROUP (/usr/local/cross-gcc/mipsel -linux/mipsel -linux/lib/libc.so.6
/usr/local/cross -gcc/mipsel -linux/mipsel -linux/lib/libc_non-shared.a)
(e)将生成的include传送到正确位置
将/usr/local/cross-gcc/mipsel-linux/mipsel-linux/mipsel-linux/sys-include改名为include
cd /usr/local/cross-gcc/mipsel-linux/mipsel-linux/
mv sys-include include
将include文件传到/usr/local/cross-gcc/mipsel-linux/mipsel-linux/include
cp -r-f /home/crosstool/tmp/glibc-2.2.5-inst/usr/local/cross-
gcc/mipsel-linux/include//usr/local/cross-gcc/mipsel-linux/mipsel-linux/

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值