首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

为 Linux on Power 系统开发 C/C++ 交叉编译应用程序

为 Linux on Power 系统开发 C/C++ 交叉编译应用程序

简介IBM® Software Development Kit (SDK) for Linux on Power 是免费的基于 Eclipse 的集成开发环境(integrated development environment,IDE)。此 SDK 集成了 C/C++ 源代码开发与 Advance Toolchain、Post-Link Optimization 和典型的 Linux 性能分析工具,包括 Oprofile、Perf 和 Valgrind。
本文介绍如何通过 IBM SDK 提供的集成环境使用 IBM Advance Toolchain 和 QEMU 用户模式为 Linux on Power 开发交叉编译应用程序,这样做允许运行和调试针对一个处理器编译的应用程序,使其在另一个拥有不同架构的处理器上运行(这就是交叉编译/调试)。
要求为使用 SDK 中的 QEMU 用户模式,需要安装 IBM Advance Toolchain 交叉编译器、QEMU 用户模式和 IBM SDK for Linux on Power。
出于本文的目的,我们使用了以下版本:
  • IBM Advance Toolchain cross compiler 8.0-1
  • IBM SDK for Linux on Power 1.6
  • QEMU 用户模式
重要提示:在编写本文时,SDK 1.6 已推出,但还未提供支持 ppc64le(Linux on Power 的小端版本)的软件包。为了提供最新的改进,SDK 团队为它创建了一个可安装的软件包。
使用的操作系统是 Fedora 20。
安装 IBM Advance Toolchain 交叉编译器IBM Advance Toolchain for PowerLinux™ 是一组开源开发工具和运行时库,它使用户能够在 Linux 上利用以下最新的 IBM Power® 硬件特性(在本文发布时):
  • IBM POWER8™ 支持
  • POWER8 优化的调度程序
  • POWER8 Transactional Memory 支持
  • OWER8 Crypto Operations 支持
  • POWER8 Fusion 支持
执行以下步骤来安装 IBM Advance Toolchain 交叉编译器。
  • 下载 AT 8.0-1 交叉编译器的通用包
  • 下载 AT 8.0-1 交叉编译器的 ppc64le 版本
  • 运行以下命令来安装两种包:
    • $sudo yum install -y ./advance-toolchain-at8.0-cross-common-8.0-1.x86_64.rpm
    • $sudo yum install -y ./advance-toolchain-at8.0-cross-ppc64le-8.0-1.x86_64.rpm
您会注意到,AT 8.0-1 交叉编译器已安装且目录为 /opt/at8.0。
安装 x86_64 版本的 SDKx86_64 版本的 IBM SDK 支持 IBM Advance Toolchain 交叉编译器版本 7.0-1、7.1-0 和 8.0-1。还可以使用它创建同步项目,这允许使用远程 IBM Power 服务器开发应用程序。
有关如何创建同步项目的更多信息,请参见 SDK 用户指南。如果您想访问 Power 服务器,请访问 MiniCloud 网站并提交您的请求。它是免费的!
返回到 SDK 安装。按照以下步骤进行操作:
  • 下载 x86_64 版本的 IBM SDK for Linux on Power
  • 运行以下命令以安装软件包。
$sudo yum install -y ./ibm-sdk-lop-1.6.0-1.x86_64.rpm
安装 QEMU 用户模式QEMU 是一个广泛使用的开源计算机模拟器和虚拟机。此用户模式允许在一个处理器上启动针对另一个处理器编译的程序,这样就可以运行和调试交叉编译应用程序。
当 SDK 1.6 发布时,所支持的发行版中可用的 QEMU 用户模式版本并未包含支持 ppc64le 的补丁。为了克服这种情况,SDK 团队为它创建了一个可安装的包。
要安装 QEMU 用户模式,请执行以下步骤。
  • 下载  user-mode 软件包。
  • 运行以下命令来安装此软件包。
$sudo yum install -y ./qemu-user-space-emulator-1-1.x86_64.rpm
现在,QEMU 直接投入使用,但是如果您想使用最新版的 QEMU,可以在本地构建它。这个过程非常简单,步骤如下所示:
在您开始之前,确保已安装了。
  • 使用以下命令克隆 QEMU 源代码:
    • git clone git://git.qemu.org/qemu.git
    • cd ./qemu
  • 使用以下命令创建构建目录:
    • mkdir -p bin/debug/native
    • cd bin/debug/native
  • 使用以下命令安装依赖项:
    $sudo yum install -y zlib.x86_64 glibc-devel.x86_64 zlib-devel.x86_64 pixman-devel.x86_64 libfdt-devel.x86_64 glib2-devel.x86_64
  • 使用以下命令配置项目:
    ../../../configure --disable-debug-tcg --enable-tcg-interpreter --target-list="ppc64abi32-linux-user ppc64le-linux-user ppc64-linux-user" --disable-vnc --extra-cflags="-O3"
  • 运行以下 make 命令。
    make -j5
  • 使用以下命令安装 QEMU 库。
    $sudo make install
重要提示:安装完成之后,QEMU 库位于 /usr/local/bin 下,但 SDK 希望它们的目录为 /opt/ibm/qemu-user-space-emulator。以下步骤提供了一种解决此问题的方法:
  • 使用以下命令创建目录:
    $sudo mkdir -p /opt/ibm/qemu-user-space-emulator
  • 使用以下命令将库从 /usr/local/bin 复制到 /opt/ibm/qemu-user-space-emulator:
    $sudo cp /usr/local/bin/qemu-ppc64 /usr/local/bin/qemu-ppc64abi32 /usr/local/bin/qemu-ppc64le /opt/ibm/qemu-user-space-emulator
创建交叉编译项目使用 IBM SDK for Linux on Power 创建交叉编译项目非常简单。完成 Advance Toolchain、QEMU 和 SDK 的安装后,就可以开始开发 C/C++ 交叉编译应用程序了。
  • 第一步是启动 SDK。可以通过在用户界面选择 SDK 或者使用命令行来启动它。
    • 使用用户界面:
      搜索 IBM SDK for Linux on Power 1.6。
    • 使用命令行:
      运行以下命令:/opt/ibm/ibm-sdk-lop/ibm-sdk-lop
    当 SDK 启动时,将提示您选择工作区。
    图 1. 定义工作区点击查看大图
    定义了工作区之后,就可以使用 SDK。
    图 2. SDK 视图
  • 现在,您可以创建交叉编译项目了。在 Getting Started 选项卡中,选择 New IBM Advance Toochain C Project 或 IBM Advance Toolchain C++ Project
    图 3. 选择项目类型
  • 选择了所需的项目类型后,需要配置新项目,包括名称、位置、类型和工具链。
    图 4. 项目配置点击查看大图
  • 还可以通过选择处理器类型来调优应用程序。
    图 5. 调优应用程序点击查看大图
  • 单击 Finish 以在之前创建的工作区中设置项目。它将位于 Project Explorer 选项卡中。
    图 6. 项目结构点击查看大图
返回列表