手斧Linux – 从LFS到Funtoo (22)

第9节 编译glibc  64位

用上面做的$LFS_TGT binutils gcc生成用于$LFS_TGT的c库。

tar xvfj ../glibc-2.14.1.tar.bz2 

cd glibc-2.14.1

patch -Np1 -i ../../glibc-2.14.1-gcc_fix-1.patch

patch -Np1 -i ../../glibc-2.14.1-cpuid-1.patch

mkdir -v ../glibc-build-64

cd ../glibc-build-64

echo "install_root = $(pwd)/img" >configparms

case `uname -m` in   i?86) echo "CFLAGS += -march=i486 -mtune=native" >> configparms ;; esac

../glibc-2.14.1/configure --prefix=/tools --libdir=/tools/lib64 --host=$LFS_TGT  --build=$LFS_TGT  --disable-profile --enable-add-ons  --with-headers=/tools/include   --enable-kernel=2.6.25   --enable-multi-arch  libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes libc_cv_slibdir=/tools/lib64

如果不指定--build,它将由如下的代码自动生成

 --build=$(../glibc-2.14.1/scripts/config.guess) 

guess出来的编译器,就是之前做LFS的gcc和binutils用的,或者找不着了就是刚做出来的LFS gcc等。这里,将它显式指定为LFS的gcc。

--host必须指定,它会影响到一些include的位置。 /home/lfs/build/tools/bin/../lib/gcc/x86_64-lfs-linux-gnu/4.6.1/include  这个库是给之前的LFS gcc 等用的,host应是LFS,当然,它也给第二次做出的gcc(shared)用。

在这个编译中,还会生成一些很重要的库文件:/tools/lib/crt*。

在编译之前,可以查看configure的结果,在config.log里,如下,查看最后会用哪个C编译器工作,内容如下:

cross_compiling='no'

CC='x86_64-lfs-linux-gnu-gcc'

正如所愿,开始用刚做出来的编译器来编译glibc库了。

然后,开始编译过程。

make 2>&1|tee out.make

mkdir -pv $(pwd)/img/tools/etc

touch img/tools/etc/ld.so.conf

make install DESTDIR=$(pwd)/img 2>&1|tee out.install

cd ..

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值