服务器 频道

Linux on POWER:开发概览

  编译器

  在 Linux on POWER 上可以使用以下的编译器:

  " IBM XL C/C++

  " IBM XL Fortran

  " GNU 编译器集(GCC)

  IBM XL C/C++ Version 7.0 是一种高性能的编译器,可以在 RHEL4 和 SLES9 中使用,它们改进了基于 POWER5 处理器系统的性能。-qarch 和 -qtune 选项用来对各自的架构进行优化。例如,要对 POWER5 平台进行优化,就可以使用下面的选项: -qarch=pwr5 和 -qtune=pwr5。

  IBM XL C/C++ 编译器中的 -qaltivec 选项用来启用 IBM eServer BladeCenter JS20 中 PowerPC 970 和 970FX 处理器的 VMX 特性。

  GCC 中包含了很多不同语言的编译器。从 3.2 到 3.3 有很多改进,包括 POWER 处理器对它的 C 编译器 gcc 的特有优化。

  -mcpu=power5 和 -mtune=power5 标记现在都可以支持了,这样可以生成只用于 POWER5 架构的指令。还有一些对 IBM PowerPC 970 和 970FX 处理器的 VMX 向量扩展,这可以提高向量化代码的性能。

  由于 IBM XL C/C++ 编译器使用了更多的 POWER5 高级硬件特性,它为所编译的程序提供了更好的性能,不过使用 gcc 编译的程序的可移植性更好。

  下表对 GCC 和 XL C/C++ 中常用的编译选项进行了比较:

  表 6. GCC 和 XL C/C++ 中常用的编译选项

GCC

XL C/C++

说明

-v

-v, -V, -#

打开详细模式

-m32, -m64

-q32, -q64 或设置 OBJECT_MODE 环境变量

创建一个 32 位或 64 位的对象。GCC 64 位的编译器位于 /opt/cross/bin

-fsyntax-only

-qsyntaxonly

只检查语法,而不生成对象文件

-fpic

-qpic=small

生成共享库中使用的 Position-Independent Code。在 XL C/C++ 中,Global Offset Table 的大小不超过 64 Kb。如果指定 –qpic,而无任何子选项,则假设 -qpic=small。如果指定了 -qmkshrobj 编译器选项,则启用 -qpic 选项

-fPIC

-qpic=large

允许 Global Offset Table 大于 64 Kb

-pthread

-qthreaded or _r invocation mode

创建在多线程环境中运行的程序

-fno-rtti

-qnortti

对于异常处理和 typeid dynamic_cast 操作符的使用,禁止生成运行时类型 –qrtti 识别(RTTI)。在 XL C/C++ 中,默认值为 -qnortti

-static

-qstaticlink

使用这个选项生成的对象将无法与共享库进行链接

-static-libgcc

-qstaticlink=libgcc

指示编译器与 libgcc 的静态版本链接

-shared

–qmkshrobj

指示编译器生成共享对象

-shared-libgcc

-qnostaticlink=libgcc

指示编译器与 libgcc 的共享版本链接

-Wl,-rpath

-Wl,-rpath –R

传递用冒号分隔的目录列表,用它来指定运行时链接程序搜索的目录

-fno-implicit-templates, -frepo

-qtempinc,
-qtemplateregistry,
-qtemplaterecompile

模板实例化

-w

-w

取消警告消息

 

-warn64

允许对长型到整型的截断舍位(long-to-integer truncation)进行检查

 

-qinfo=<…>

生成信息消息

-fpack-struct

-qalign=bit_packed

使用 bit_packed 排列规则

 

-qalign=linuxppc

使用默认 GCC 排列规则来维护与 GCC 对象的兼容性。这个值是默认值

-O,-O2,-O3

-O,-O2,-O3,-O4,-O5

优化级别

 

-qarch, -qtune, -qcache

处理器特有的优化选项

  结束语

  本文为 Linux 开发人员概要介绍了 IBM 最新的基于 POWER5 和 PowerPC 970(FX)处理器的系统,并重点介绍了在这些系统上可以使用的几种新技术。最后,还介绍了有关为 eServer OpenPower、eServer p5、eServer i5 和 eServer BladeCenter JS20 定制的 Linux 发行版,内容包括二进制兼容性、编译器和其上可以使用的软件。

0
相关文章