<< Back to shouce.jb51.net

安装 Binutils-2.14

预计所需编译时间:      1.4 SBU
预计所需硬盘空间:      167 MB

Binutils的内容

Binutils 是一组开发工具,包括连接器,汇编器和其他用于目标文件和档案的工具。

安装下列程序: addr2line, ar, as, c++filt, gprof, ld, nm, objcopy, objdump, ranlib, readelf, size, strings 和 strip

安装下列库文件: libiberty.a, libbfd.[a,so] 和 libopcodes.[a,so]

Binutils 安装依赖关系

Binutils 依赖于: Bash, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed, Texinfo.

安装 Binutils

现在我们测试一下在chroot环境中,你的 pseudo 终端 (PTYs) 是否正常工作。运行下面的命令:

expect -c "spawn ls"

如果看到这样的输出:

The system has no more ptys.  Ask your system administrator to create more.

说明你的chroot环境没有设置好PTY,这时运行Binutils和GCC的测试套件就没有意义了,必须先解决PTY设置。请看 the 节 called 加载 proc 和 devpts 文件系统the 节 called 创建设备Creating devices (Makedev-1.7),设置好PTY。

注: 本节的Binutils测试套件很重要。我们建议在任何情况下都别省略这一步。

如果你把这个包缺省的优化参数(包括 -march 和 -mcpu参数)改变的话,它会有很不良的表现。最好不要优化这个包。因此,如果你定义了任何优化参数的话,比如CFLAGS 和 CXXFLAGS,我们劝你在编译binutils时unset或修改它们。

Binutils的安装指南推荐用一个新建的目录来编译它,而不是在源码目录中。所以,我们就创建了一个 binutils-build目录并从那里开始编译:

mkdir ../binutils-build
cd ../binutils-build

为编译 Binutils 做准备:

../binutils-2.14/configure \
    --prefix=/usr --enable-shared

编译软件包:

make tooldir=/usr

通常情况下,tooldir (可执行文件最后安装到的目录) 是 $(exec_prefix)/$(target_alias), 如果展开,就成为类似于 /usr/i686-pc-linux-gnu这样。因为我们只为自己的系统编译,就并不需要/usr目录下再存在目标前缀。它是在交叉编译时(比如在Intel机器上编译将在PowerPC上执行的程序时)才用到的。.

运行测试套件:

make check

the 节 called 安装 Binutils-2.14 - 第二遍 在 第 5 章那里的测试套件说明,现在也同样适用。有什么疑问,就看看那里。

安装软件包:

make tooldir=/usr install

安装某些软件包需要的 libiberty 头文件:

cp ../binutils-2.14/include/libiberty.h /usr/include