7.3. Biarch 平台上的软件编译

若要在 Biarch 体系结构上为其它体系结构开发二进制代码,则必须另外安装用于第二个体系结构的各个库。这些包称为 rpmname-32bit。您还需要 rpmname-devel 包中各自的标题和库以及 rpmname-devel-32bit 中用于第二个体系结构的开发库。

大多数开放源代码程序使用基于 autoconf 的程序配置。若要使用 autoconf 配置第二个体系结构的程序,请通过运行带有附加环境变量的 configure 脚本覆盖 autoconf 的常规编译器和链接器设置。

以下示例涉及 x86 为第二个体系结构的 AMD64 或 EM64T 系统:

  1. 设置 autoconf 使用 32 位编译器:

    CC="gcc -m32"
  2. 指示链接器处理 32 位对象:

    LD="ld -m elf64_i386"
  3. 设置组装器生成 32 位对象:

    AS="gcc -c -m32"
  4. 确定 libtool 等的库是否来自 /usr/lib

    LDFLAGS="-L/usr/lib"
  5. 确定库是否储存在 lib 子目录中:

    --libdir=/usr/lib
  6. 确定是否使用了 32 位 X 库:

    --x-libraries=/usr/X11R6/lib/

并不是每个程序都需要这些变量。根据各个程序对这些变量进行调整。

CC="gcc -m64"            \
LDFLAGS="-L/usr/lib64;"  \
        .configure       \
          --prefix=/usr  \
          --libdir=/usr/lib64
make
make install