5.4. GCC-3.4.3 - Pass 1

GCC 软件包包含 GNU 编译器套件,其中包括 C 和 C++ 编译器。

预计构建时间: 4.4 SBU
所需磁盘空间: 219 MB
安装依赖于: Bash、Binutils、Coreutils、Diffutils、Findutils、Gawk、Gettext、Glibc、Grep、Make、Perl、Sed 和 Texinfo

5.4.1. GCC 的安装

已知此软件包在其默认优化标志(包括 -march-mcpu 选项)被更改时会出现问题。如果定义了任何覆盖默认优化的环境变量,例如CFLAGSCXXFLAGS,则在构建 GCC 时取消设置它们。

GCC 文档建议在源代码目录之外的专用构建目录中构建 GCC

mkdir -v ../gcc-build
cd ../gcc-build

准备 GCC 以进行编译

../gcc-3.4.3/configure --prefix=/tools \
    --libexecdir=/tools/lib --with-local-prefix=/tools \
    --disable-nls --enable-shared --enable-languages=c

configure 选项的含义

--with-local-prefix=/tools

此开关的目的是移除/usr/local/includegcc 的 include 搜索路径中。这不是绝对必要的,但是,它有助于最大限度地减少主机系统的影响。

--enable-shared

此开关允许构建libgcc_s.so.1libgcc_eh.alibgcc_eh.a可用确保 Glibc(我们编译的下一个软件包)的 configure 脚本产生正确的结果。

--enable-languages=c

此选项确保仅构建 C 编译器。

继续编译软件包

make bootstrap

make 参数的含义

bootstrap

此目标不仅仅编译 GCC,而是多次编译它。它使用第一轮中编译的程序第二次编译自身,然后再第三次编译。然后,它比较第二次和第三次编译,以确保它可以完美地重现自身。这也意味着它被正确编译。

编译现已完成。此时,通常会运行测试套件,但是,如前所述,测试套件框架尚未到位。此时运行测试的好处是微乎其微的,因为来自第一次 pass 的程序很快将被替换。

安装软件包

make install

作为最后的润色,创建一个符号链接。许多程序和脚本运行 cc 而不是 gcc,这是为了保持程序的通用性,因此可以在未总是安装 GNU C 编译器的各种 UNIX 系统上使用。运行 cc 使系统管理员可以自由决定安装哪个 C 编译器。

ln -vs gcc /tools/bin/cc

有关此软件包的详细信息,请参见第 6.14.2 节“GCC 的内容”。