Release Notes for the Advance Toolchain 5.0 Version 5.0-4

| Features | Previous Releases | Support | Installation | Documentation |

Features in 5.0-4

  • The Advance Toolchain is a self contained toolchain which isn't reliant on the base system toolchain.
  • Decimal Floating Point support in the following packages:
    • GCC-4.6-ibm-r187385 [C,C++ (g++), fortran]
    • GNU Binutils-2.22.20120330
    • GLIBC-2.13-ibm
    • LIBDFP 1.0.8-r17081
    • GDB-7.4 with Python scripting
  • Releases of the following packages in support of the Advance Toolchain:
    • Valgrind-3.7.0
    • OProfile-0.9.7 with Java (1.5 or later) support
    • GMP-4.3.2
    • MPFR-3.0.0
    • MPC-0.8.2
    • PPL-0.11
    • CLOOG-PPL-0.15.10
    • LIBELF-0.8.12
    • Libhugetlbfs 2.9
    • Zlib 1.2.6
    • Libauxv 0.1.0
    • Libexpat 2.0.1
    • Python 2.6.6
    • Intel TBB 40_20111109oss
    • Amino CBB 1.1
    • Userspace RCU LIB0.6.4
    • OpenSSL 1.0.0g
    • Boost 1.49.0
    • LibSPHDE 0.9-d2e3e359
    • TCMalloc 2.0
  • POWER6 enablement.
  • POWER6 Optimized scheduler.
  • POWER6 Native DFP instruction support.
  • POWER6 VMX enablement with auto-vector.
  • POWER7 enablement.
  • POWER7 Optimized scheduler.
  • POWER7 Native DFP instruction support.
  • POWER7 VMX/VSX enablement with auto-vector.
  • PPC970,POWER4,POWER5,POWER5+,POWER6, POWER6x and POWER7 optimized system libraries.

Apart from package versions listed above:

  • New libraries shipped: OpenSSL, Boost, TCMalloc and SPHDE. The first three are included in the advance-toolchain-at5.0-runtime rpm, and SPHDE is included in the advance-toolchain-at5.0-mcore rpm.
  • GCC includes the following fixes:
    • r185898 - in /branches/ibm/gcc-4_6-branch/gcc - Merge up to 186704 to get fix for PR lto/48246.
    • r186595 - in /branches/ibm/gcc-4_6-branch/gcc - Merge up to 186580.

Previous releases

New features in 5.0-3

  • New libraries shipped: Intel Thread Building Blocks, Amino Concurrent Building Blocks and Userspace RCU. These are included in the new advance-toolchain-at5.0-mcore rpm.
  • GCC includes the following fixes:
    • r187385 - in /branches/ibm/gcc-4_6-branch/gcc - Extra performance fixes for libstdc++.
    • r187009 - in /branches/ibm/gcc-4_6-branch/gcc - Fix performance regression in libstdc++.
    • r185898 - in /branches/ibm/gcc-4_6-branch/gcc - Merge up to 185898 to get fix for a LTO-related ICE.
    • r185471 - in /branches/ibm/gcc-4_6-branch/gcc - Performance fix for libstdc++.
    • r185017 - in /branches/ibm/gcc-4_6-branch/gcc - Merge up to 185014 to get fix for PR50310.
    • r184671 - in /branches/ibm/gcc-4_6-branch/gcc - PR tree-optimization/52424.
    • r184496 - in /branches/ibm/gcc-4_6-branch/gcc - Set OPTIMIZE_CXXFLAGS to -DIN_LIBSTDCXX for powerpc*-linux.
  • OProfile includes the following fixes:
    • Fix for an issue where OProfile reported the wrong process name in its XML output report.

New features in 5.0-2

  • GCC includes the following fixes:
    • r184311 - in /branches/ibm/gcc-4_6-branch/gcc - Merge with latest gcc 4.6.
    • r184225 - in /branches/ibm/gcc-4_6-branch/gcc - Backport sphinx3 and 168.wupwise performance regression fixes - PR50031 and PR50969.
    • r184068 - in /branches/ibm/gcc-4_6-branch/gcc - Backport -mno-pointers-to-nested-function switch.
    • r183845 - in /branches/ibm/gcc-4_6-branch/gcc - Backport set rs6000_always_hint to false for PPC 476.
    • r183844 - in /branches/ibm/gcc-4_6-branch/gcc - Backport new define_insn (floatdidd2).
    • r183110 - in /branches/ibm/gcc-4_6-branch/gcc - PR49642 fix - constant part of a macro not optimized away as expected due to splitter.
    • r183076 - in /branches/ibm/gcc-4_6-branch/gcc - Merge with latest gcc 4.6.
    • r183074 - in /branches/ibm/gcc-4_6-branch/gcc - Backport debug switch.
    • r182747 - in /branches/ibm/gcc-4_6-branch/gcc - Fix in target support.
    • r182731 - in /branches/ibm/gcc-4_6-branch/gcc - Change for PPC embedded user - PR51623.
    • r182169 - in /branches/ibm/gcc-4_6-branch/gcc - IFUNC Fix - PR51469.
    • r181930 & 181809 - in /branches/ibm/gcc-4_6-branch/gcc - Large builtin patch.
  • GLIBC includes the following fixes:
    • Fix stacksize for AIO worker threads to account for TLS usage.
    • Add __have_pipe2 to fix popen() bug.
    • Optimization for str[n]casecmp.
    • Optimization for nearbyint[f].
    • Fix a wrong constant in powerpc hypot implementation.
    • Arithmetic function optimizations for POWER.
    • Optimize libm wrapper functions.
    • Fix PLT uses in libm.
  • LIBDFP includes the following fixes:
    • Per ISO/IEC JTC1 SC22 WG21 N2732, added dfp/decimal/decimal header with ostream<< and ostream>> support.
    • Per ISO/IEC JTC1 SC22 WG21 N2732, added dfp/float.h to add _Decimal[32|64|128] compatibility types when __cplusplus is defined.
    • Fixed expd[32|64]() to handle negative input values.
    • Added missing hard-dfp implementations for __dpd_extend* and __dpd_trunc* functions.

New features in 5.0-1

  • LIBDFP includes the following fixes:
    • r15844 - Fix missing header declaration (features.h) in dfp/stdlib.h and dfp/wchar.h.
  • Libauxv 0.1.0 is now built with --enable-static. A libauxv.a static archive is now available.
  • GCC includes the following fixes:
    • r177629 - in /branches/ibm/gcc-4_6-branch/gcc - Fix for -flto -fwhole-program -fuse-linker-plugin linker error.
    • r177723 - in /branches/ibm/gcc-4_6-branch/gcc - Apply force_reg to addr.
    • r177830 - in /branches/ibm/gcc-4_6-branch/gcc - Correctly set BV_LOST_PRIMARY.
  • GLIBC includes the following fixes:
    • Trigonometric optimizations for POWER cpus.
    • Strncmp throughput boost on power7 ppc64.
    • Check for finite/infinity parms in IBM Long Double 128 fmal ().
    • Fix profiling on powerpc32 secure-plt shared libs and PIEs.
  • Valgrind POWER7 patch to with complete support for POWER7 # (minus DFP support)
  • Update oprofile from 0.9.7-rc4 to 0.9.7 GA

New features in 5.0-0

  • Newly designed Release Notes file
  • New script for automatic generation of config files for XLC 10.1/11.1 and XLF 12.1/13.1
  • GLIBC is now built with experimental-malloc support.
  • CPU-tuned GCC libraries.
  • Libexpat is now shipped.
  • GCC includes the following fixes:
    • PR49749 fix
    • PR48258 fix
    • PR48226 fix
    • POWER7 fix: Allow the compiler to generate 4-operand FMA where the outptut does not overlap with the inputs for scalar double and vector float operations.
    • New switch: -mno-pointers-to-nested-functions: tells the compiler that it is safe to eliminate loading up the static chain register when calling functions via pointers. It cannot be used if the function that is being called is a nested function in GNU C or was compiled with a language that expects to use the static chain.
    • New parameter: --param case-values-threshold=n: changes the cutoff point for when the compiler chooses to use a series of if statements to implement a switch statement or to use table jump.
    • The -m32 -msoft-float libraries are no longer built.
    • Bugs fixed in handling medium code model
  • GLIBC includes the following fixes:
    • Optimize the memcpy aligned copy for power7 with vector-scalar insns.
    • Remove pthread_attr_setstacksize from __aio_create_helper_thread.
    • Trigonometric optimizations for POWER CPUs.
    • Prevent Altivec and VSX instructions on PowerPC64 when no FPRs or VRs are available.
    • Add AT_PLATFORM env variable to to override auxv AT_PLATFORM.
    • Static TLS memory leak fix (DTV case).
    • Prevent erroneous inline optimization of initfini.s on PowerPC64.
  • GDB includes the following fix:

Documentation for each component can be found here:


Customer support for the Advance Toolchain (AT) is provided in one of three ways:

  1. If you are using AT as directed by an IBM product team (ex.: IBM XL Compiler or PowerVM Lx86) please report suspected AT problems to IBM Support using that product name and entitlement.
  2. IBM's Support Line for Linux Offering in the United States now provides support for AT as well. If you have a contract with a U.S. Support Line for Linux contract, place a call to IBM Support:
    • Dial 1-800-426-IBM-SERV
    • Option #2 (Other business products or solutions)
    • Option #2 (Software)
    • Option #7 (Other OS/Linux)
  3. All other users can use an electronic forum that is monitored Monday through Friday. For questions regarding the use of or to report a suspected defect in AT, click here.
    • Open the Advance Toolchain topic.
    • Select 'Post a New Reply'.
    • Enter and submit your question or problem.
    • An initial response will be attempted within 2 business days.


The gpg public key gpg-pubkey-3949741d-4627cdf9 will be provided in the repository where these release notes were found. This pubkey can be used to verify the authenticity of both the Advance Toolchain rpms and the repository contents.

Download this gpg-pubkey and import it into your rpm database using the following:

rpm --import gpg-pubkey-3949741d-4627cdf9

Note: on SLES10, please install the ncurses package (64-bit) before installing the Advance Toolchain.

Using YaST or Zypper

To install using YaST, execute yast as root. Then:

  • Select Add-on Product.
  • Select the FTP Protocol:
    • (x) FTP...
    • Under Server Name:
    • Under Directory on Server:
  • You will get a warning about there being no product information available at the given location. This is because the repomd based repository doesn't contain the YaST product information. This is not a bug. Select [Continue].
  • Under the Software Management interface, search for advance toolchain and mark the runtime, devel and perf packages for installation as necessary and click [Accept].

To install using Zypper, you first need (as root) to add the UIUC FTP to the repository list:

zypper addrepo "Advance Toolchain"

This will create a new repository entry called "Advance Toolchain" pointing to the UIUC FTP site. Then, execute the following to install:

zypper install advance-toolchain-at5.0-runtime advance-toolchain-at5.0-devel advance-toolchain-at5.0-perf

You will be prompted to trust the repository key (AdvanceToolchain05). Hit a for always trusting this key, then y to confirm packages installation. Optionally, you may also install the advance-toolchain-at5.0-mcore-libs package, which contains the multi-core exploitation libraries (5.0-3 and above).

YaST and Zypper support package upgrades for new revision releases (i.e. 5.0-0 to 5.0-1). For new major releases (i.e. 4.0-1 to 5.0-0), please proceed as in a normal installation.

Manual installation

If you are installing the rpms manually you will need to install the rpms in the following order (due to prerequisites):


Optionally, you may also install the advance-toolchain-at5.0-mcore-libs package, which contains the multi-core exploitation libraries (5.0-3 and above).

If you are updating a previous installation, you need to update as a batch, so rpm can solve the dependencies, i.e.:

rpm -Uvh advance-toolchain-at5.0-runtime-5.0-4.ppc64.rpm advance-toolchain-at5.0-devel-5.0-4.ppc64.rpm advance-toolchain-at5.0-perf-5.0-4.ppc64.rpm

The rpm command should always be run as root. Failure to do so will result in an error similar to this:

error: can't create transaction lock on /var/lib/rpm/__db.000

Important notes

  • Timezone files: If you need to use something different than Factory, then you should copy the timezone file you want from g/opt/at5.0/share/zoneinfo to /opt/at5.0/etc/localtime
  • advance-toolchain-at5.0-runtime-compat-5.0-4: DO NOT INSTALL it on SLES10 and beyond or RHEL5 and beyond. These are intended for runtime compatibility on SLES9 and RHEL4 only (see below).

Installation on SLES9 and RHEL4 - Runtime compatibility

Users running applications on SLES9 or RHEL4 may install the compatibility rpm advance-toolchain-at5.0-runtime-compat-5.0-4 in order to get the Advance Toolchain optimized runtime libraries. Optimized libraries are available for:

  • PPC970
  • POWER4
  • POWER5
  • POWER5+

Installation of the cross-compiler (Intel x86)

You can download advance-toolchain-at5.0-cross-5.0-4 and install in a x86 machine to build Power binaries on it. Binaries generated by the cross-compiler will run on a Power system with the same version of the Advance Toolchain installed.


The official documentation for the Advance Toolchain is available at the IBM Power Linux Community website.