【LFS 系列】从零开始 DIY Linux 系统:(五)构建临时系统 - Binutils-2.25

举报
Lucifer三思而后行 发表于 2021/09/22 00:34:21 2021/09/22
【摘要】 在安装并配置好宿主机之后,我们就可以开始构建临时系统了! 构建该最小系统有两个步骤: 第一步是构建一个宿主系统无关的新工具链(编译器、汇编器、链接器、库和一些有用的工具)第二步则是使用该工具链构建其它...

在安装并配置好宿主机之后,我们就可以开始构建临时系统了!

构建该最小系统有两个步骤:

  • 第一步是构建一个宿主系统无关的新工具链(编译器、汇编器、链接器、库和一些有用的工具)
  • 第二步则是使用该工具链构建其它的基础工具。

本文中编译得到的文件将被安装在目录 $LFS/tools 中,以使其与下一章中安装的文件和宿主系统生成的目录分开。

这是因为此处编译的软件包都是临时性的,因此我们不愿意它们污染后面即将制作的 LFS 系统。

Binutils 是首个安装的包,这是因为执行 GCC 和 Glibc 的 configure 时都将进行有关汇编器和链接器的多项特性测试,以判断允许或禁用哪些软件特性。

其重要性可能更甚于最初的意识。对 GCC 或 Glibc 的错误配置可能导致工具链出现难以捉摸的问题,可能直到整个构建过程接近尾声时才会显现出这些问题。通常情况下,一次测试套件失败可在你进行太多其它工作前暴露出该错误。

Binutils 将其汇编器和链接器安装在两个位置,即 /tools/bin/tools/$LFS_TGT/bin

介绍完之后,我们就开始吧!👌🏻

Binutils 软件包包括了一个链接器、汇编器和其它处理目标文件的工具。

首先,切换到 lfs 用户下:

su - lfs

  
 
  • 1

确保环境变量已生效,并且解压 Binutils-2.25 软件包

echo $LFS
cd $LFS/sources
tar xf binutils-2.25.tar.bz2
cd binutils-2.25

  
 
  • 1
  • 2
  • 3
  • 4

Binutils 手册建议在源码目录之外一个专门的编译目录里面编译 Binutils:

mkdir -v ../binutils-build
cd ../binutils-build

  
 
  • 1
  • 2

准备编译 Binutils,生成文件:

../binutils-2.25/configure     \
    --prefix=/tools            \
    --with-sysroot=$LFS        \
    --with-lib-path=/tools/lib \
    --target=$LFS_TGT          \
    --disable-nls              \
    --disable-werror

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

编译软件包

make

  
 
  • 1

如果是在 x86_64 上编译,创建符号链接,以确保工具链的完整性:

case $(uname -m) in
  x86_64) mkdir -v /tools/lib && ln -sv lib /tools/lib64 ;;
esac

  
 
  • 1
  • 2
  • 3

安装软件包:

make install

  
 
  • 1

安装完成后清理工作:

cd ..
rm -rf binutils-build
rm -rf binutils-2.25

  
 
  • 1
  • 2
  • 3

本次分享到此结束啦~

如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。

❤️ 技术交流可以 关注公众号:Lucifer三思而后行 ❤️

文章来源: luciferliu.blog.csdn.net,作者:Lucifer三思而后行,版权归原作者所有,如需转载,请联系作者。

原文链接:luciferliu.blog.csdn.net/article/details/120400643

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。