这个软件包的细节在第 8.18.2 节 “Binutils 的内容”中可以找到。
Binutils 包含汇编器、链接器以及其他用于处理目标文件的工具。
返回并重新阅读编译过程的一般说明一节。仔细理解那些标为“重要”的说明,以防止之后出现问题。
首先构建 Binutils 相当重要,因为 Glibc 和 GCC 都会对可用的链接器和汇编器进行测试,以决定可以启用它们自带的哪些特性。
Binutils 文档推荐在一个专用的目录中构建 Binutils:
mkdir -v build cd build
为了衡量本书其余部分使用的 SBU 值,需要测量本软件包从配置开始直到第一次安装花费的时间。为了容易地完成测量,可以将命令包装在
time
命令中,就像这样:time { ../configure ...
&& make && make install; }
。
现在,准备编译 Binutils:
../configure --prefix=$LFS/tools \ --with-sysroot=$LFS \ --target=$LFS_TGT \ --disable-nls \ --disable-werror
配置选项的含义:
--prefix=$LFS/tools
这告诉配置脚本准备将 Binutils 程序安装在 $LFS/tools
目录中。
--with-sysroot=$LFS
该选项告诉构建系统,交叉编译时在 $LFS 中寻找目标系统的库。
--target=$LFS_TGT
由于 LFS_TGT
变量中的机器描述和 config.guess 脚本的输出略有不同,
这个开关使得 configure 脚本调整 Binutils
的构建系统,以构建交叉链接器。
--disable-nls
该选项禁用临时工具不需要的国际化功能。
--disable-werror
该选项防止宿主系统编译器警告导致构建失败。
然后编译该软件包:
make
安装该软件包:
make install
这个软件包的细节在第 8.18.2 节 “Binutils 的内容”中可以找到。