6.17. Binutils-2.41 - 第二遍

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

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

6.17.1. 安装 Binutils

Binutils 的源码包中内置了一份陈旧的 libtool 拷贝。这个版本的 libtool 没有 sysroot 支持,因此产生的二进制代码会错误地链接到宿主系统提供的库。绕过这个问题:

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