该软件包的更多信息可以在第 8.20.2 节 “Binutils 的内容”中找到。
Binutils 包含汇编器、链接器以及其他用于处理目标文件的工具。
Binutils 构建系统依赖附带的 libtool 拷贝链接内部静态库,但源码包内附带的 libiberty 和 zlib 不使用 libtool。这个区别可能导致构建得到的二进制程序和库错误地链接到宿主发行版的库。绕过这个问题:
sed '6009s/$add_dir//' -i ltmain.sh
再次创建一个独立的构建目录:
mkdir -v build cd build
准备编译 Binutils:
../configure \ --prefix=/usr \ --build=$(../config.guess) \ --host=$LFS_TGT \ --disable-nls \ --enable-shared \ --enable-gprofng=no \ --disable-werror \ --enable-64-bit-bfd \ --enable-new-dtags \ --enable-default-hash-style=gnu
新的配置选项的含义:
--enable-shared
将 libbfd
构建为共享库。
--enable-64-bit-bfd
(在字长较小的宿主平台上) 启用 64 位支持。该选项在 64 位平台上可能不必要,但无害。
编译该软件包:
make
安装该软件包:
make DESTDIR=$LFS install
移除对交叉编译有害的 libtool 档案文件,同时移除不必要的静态库:
rm -v $LFS/usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes,sframe}.{a,la}
该软件包的更多信息可以在第 8.20.2 节 “Binutils 的内容”中找到。