6.17. Binutils-2.42 - 第二遍

Binutils 包含汇编器、链接器以及其他用于处理目标文件的工具。

估计构建时间: 0.5 SBU
需要硬盘空间: 537 MB

6.17.1. 安装 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-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.19.2 节 “Binutils 的内容”中找到。