6.16.1. Binutils的安装
通过执行一个简单的测试来验证 PTY 在 chroot 环境中是否正常工作:
期望 -c "生成 ls"
期望 -c "生成 ls"
此命令应输出以下内容:
生成 ls
生成 ls
相反,如果输出包含以下消息,则环境未设置为正确的 PTY 操作。 在运行 Binutils 和 GCC 的测试套件之前,需要解决这个问题:
系统没有更多的 pty。
请让您的系统管理员创建更多。
系统没有更多的 pty。
请让您的系统管理员创建更多。
现在删除一个阻止测试运行到完成的测试:
sed -i '/@\tincremental_copy/d' gold/testsuite/Makefile.in
sed -i '/@\tincremental_copy/d' gold/testsuite/Makefile.in
Binutils 文档建议在专用构建目录中构建 Binutils:
mkdir -v 构建 cd 构建
mkdir -v 构建 cd 构建
准备 Binutils 进行编译:
../configure --prefix=/usr\
--启用金\
--enable-ld=默认 \
--启用插件\
--启用共享\
--禁用错误\
--启用 64 位 bfd \
--with-system-zlib
../configure --prefix=/usr\
--启用金\
--enable-ld=默认 \
--启用插件\
--启用共享\
--禁用错误\
--启用 64 位 bfd \
--with-system-zlib
配置参数的含义:
--启用金
构建 gold 链接器并将其安装为 ld.gold(与默认链接器一起)。
--enable-ld=默认
构建原始 bdf 链接器并将其安装为 ld(默认链接器)和 ld.bfd。
--启用插件
为链接器启用插件支持。
--启用 64 位 bfd
启用 64 位支持(在字长较窄的主机上)。 在 64 位系统上可能不需要,但没有危害。
--with-system-zlib
使用已安装的 zlib 库而不是构建包含的版本。
编译包:
制作工具目录=/usr
制作工具目录=/usr
make参数的含义:
工具目录=/usr
通常,工具目录(可执行文件最终所在的目录)设置为 $(exec_ 前缀)/$(target_alias). 例如,x86_64 机器会将其扩展为 /usr/x86_64-unknown-linux-gnu. 因为这是一个自定义系统,这个特定于目标的目录在 在/ usr 不需要。
如果系统用于交叉编译(例如,在 Intel 机器上编译生成可在 PowerPC 机器上执行的代码的包),则将使用 $(exec_prefix)/$(target_alias)。
重要
本节中的 Binutils 测试套件被认为是至关重要的。 在任何情况下都不要跳过它。
重要
本节中的 Binutils 测试套件被认为是至关重要的。 在任何情况下都不要跳过它。
测试结果:
make -k 检查
make -k 检查
PC-relative offset 测试和 debug_msg.sh 测试在 LFS 环境下可能会失败。 安装软件包:
make tooldir=/usr 安装
make tooldir=/usr 安装