Issued:
2011-12-06
Updated:
2011-12-06

RHBA-2011:1644 - gcc bug fix and enhancement update


Synopsis

gcc bug fix and enhancement update

Type/Severity

Bug Fix Advisory (none)

Topic

Updated gcc packages that fix various bugs and add three enhancements are now available for Red Hat Enterprise Linux 6.

Description

The gcc packages include C, C++, Java, Fortran, Objective C, Objective C++, and Ada 95 GNU compilers, along with related support libraries.

This update fixes the following bugs:

  • The previous version of GCC incorrectly assumed that processors based on the AMD's multi-core architecture code named Bulldozer support the 3DNow! instruction set. This update adapts the underlying source code to make sure that GCC no longer uses the 3DNow! instructions on these processors. (BZ#696352)

  • On the PowerPC architecture, GCC previously passed the V2DImode vector parameters using the stack and returned them in integer registers, which does not comply with the Application Binary Interface (ABI). This update corrects this error so that GCC now passes these parameters using the AltiVec parameter registers and returns them via the AltiVec return value register. (BZ#705764)

  • Previously, GCC did not flush all pending register saves in a Frame Description Entry (FDE) before inline assembly instructions. This may have led to various problems when the inline assembly code modified those registers. With this update, GCC has been adapted to flush pending register saves in FDE before inline assembly instructions, resolving this issue. (BZ#721376)

  • Prior to this update, the gcov test coverage utility sometimes incorrectly counted even opening brackets, which caused it to produce inaccurate statistics. This update applies a patch that corrects this error so that gcov ignores such brackets, as expected. (BZ#732802)

  • When processing source code that extensively used overloading (that is, with hundreds or more overloads of the same function or method), the previous version of the C++ front end consumed a large amount of memory. This negatively affected the overall compile time and the amount of used system resources. With this update, the C++ front end has been optimized to use less resources in this scenario. (BZ#732807)

As well, this update adds the following enhancements:

  • This update adds support for new "-mfsgsbase", "-mf16c", and "-mrdrnd" command line options, as well as corresponding intrinsics to the immintrin.h header file. This allows for reading FS and GS base registers, retrieving random data from the random data generator, and converting between floating point and half-precision floating-point types. (BZ#696145)

  • GCC now supports AMD's next generation processors. These processors can now be specified on the command line via the "-march=" and "-mtune=" command line options. (BZ#696370)

  • GCC now supports Intel's next generation processor instrinsics and instructions for reading the hardware random number generator. (BZ#696495)

All users of gcc are advised to upgrade to these updated packages, which fix these bugs and add these enhancements.

Solution

Before applying this update, make sure all previously-released errata relevant to your system have been applied.

This update is available via the Red Hat Network. Details on how to use the Red Hat Network to apply this update are available at This content is not included.https://access.redhat.com/kb/docs/DOC-11259

Affected Products

ProductVersionArch
Red Hat Enterprise Linux for Scientific Computing6x86_64
Red Hat Enterprise Linux for Power, big endian6ppc64
Red Hat Enterprise Linux for IBM z Systems6s390x
Red Hat Enterprise Linux Workstation6x86_64
Red Hat Enterprise Linux Workstation6i386
Red Hat Enterprise Linux Server6x86_64
Red Hat Enterprise Linux Server6i386
Red Hat Enterprise Linux Server from RHUI6x86_64
Red Hat Enterprise Linux Server from RHUI6i386
Red Hat Enterprise Linux Server - Retired Extended Life Cycle Support6x86_64
Red Hat Enterprise Linux Server - Extended Life Cycle Support6x86_64
Red Hat Enterprise Linux Server - Extended Life Cycle Support6i386
Red Hat Enterprise Linux Server - Extended Life Cycle Support Extension6x86_64
Red Hat Enterprise Linux Server - Extended Life Cycle Support Extension6i386
Red Hat Enterprise Linux Server - Extended Life Cycle Support Extension (for IBM z Systems)6s390x
Red Hat Enterprise Linux Server - Extended Life Cycle Support (for IBM z Systems)6s390x
Red Hat Enterprise Linux Desktop6x86_64
Red Hat Enterprise Linux Desktop6i386

Updated Packages

  • libstdc++-devel-4.4.6-3.el6.x86_64.rpm
  • libgcc-4.4.6-3.el6.s390x.rpm
  • gcc-objc++-4.4.6-3.el6.i686.rpm
  • libmudflap-4.4.6-3.el6.i686.rpm
  • gcc-objc++-4.4.6-3.el6.s390x.rpm
  • libstdc++-devel-4.4.6-3.el6.s390.rpm
  • libmudflap-devel-4.4.6-3.el6.x86_64.rpm
  • libmudflap-devel-4.4.6-3.el6.ppc64.rpm
  • libgomp-4.4.6-3.el6.ppc64.rpm
  • gcc-java-4.4.6-3.el6.ppc64.rpm
  • libgcj-src-4.4.6-3.el6.s390x.rpm
  • gcc-gnat-4.4.6-3.el6.i686.rpm
  • libobjc-4.4.6-3.el6.s390.rpm
  • gcc-4.4.6-3.el6.src.rpm
  • libstdc++-4.4.6-3.el6.s390x.rpm
  • gcc-java-4.4.6-3.el6.s390x.rpm
  • libgnat-devel-4.4.6-3.el6.x86_64.rpm
  • libgfortran-4.4.6-3.el6.s390.rpm
  • gcc-objc-4.4.6-3.el6.x86_64.rpm
  • gcc-gnat-4.4.6-3.el6.ppc64.rpm
  • libgcj-devel-4.4.6-3.el6.ppc.rpm
  • gcc-gfortran-4.4.6-3.el6.i686.rpm
  • gcc-gfortran-4.4.6-3.el6.ppc64.rpm
  • libgomp-4.4.6-3.el6.s390.rpm
  • libstdc++-devel-4.4.6-3.el6.i686.rpm
  • libstdc++-docs-4.4.6-3.el6.x86_64.rpm
  • libstdc++-docs-4.4.6-3.el6.s390x.rpm
  • libstdc++-devel-4.4.6-3.el6.s390x.rpm
  • libstdc++-devel-4.4.6-3.el6.ppc64.rpm
  • gcc-c++-4.4.6-3.el6.x86_64.rpm
  • libgomp-4.4.6-3.el6.ppc.rpm
  • libgcc-4.4.6-3.el6.ppc.rpm
  • libgnat-4.4.6-3.el6.ppc64.rpm
  • libobjc-4.4.6-3.el6.ppc.rpm
  • libmudflap-devel-4.4.6-3.el6.ppc.rpm
  • libstdc++-devel-4.4.6-3.el6.ppc.rpm
  • libstdc++-docs-4.4.6-3.el6.ppc64.rpm
  • gcc-c++-4.4.6-3.el6.i686.rpm
  • libgcc-4.4.6-3.el6.s390.rpm
  • libgcj-src-4.4.6-3.el6.x86_64.rpm
  • gcc-4.4.6-3.el6.x86_64.rpm
  • libstdc++-docs-4.4.6-3.el6.i686.rpm
  • libstdc++-4.4.6-3.el6.x86_64.rpm
  • libmudflap-devel-4.4.6-3.el6.s390.rpm
  • libgfortran-4.4.6-3.el6.i686.rpm
  • libmudflap-4.4.6-3.el6.s390.rpm
  • gcc-4.4.6-3.el6.i686.rpm
  • libobjc-4.4.6-3.el6.i686.rpm
  • libgnat-4.4.6-3.el6.x86_64.rpm
  • libgcj-src-4.4.6-3.el6.ppc64.rpm
  • libgnat-devel-4.4.6-3.el6.ppc64.rpm
  • libobjc-4.4.6-3.el6.x86_64.rpm
  • gcc-objc-4.4.6-3.el6.s390x.rpm
  • libgfortran-4.4.6-3.el6.ppc.rpm
  • gcc-debuginfo-4.4.6-3.el6.x86_64.rpm
  • libstdc++-4.4.6-3.el6.s390.rpm
  • gcc-debuginfo-4.4.6-3.el6.s390x.rpm
  • libgcj-4.4.6-3.el6.s390x.rpm
  • gcc-c++-4.4.6-3.el6.s390x.rpm
  • libgnat-4.4.6-3.el6.i686.rpm
  • libgfortran-4.4.6-3.el6.ppc64.rpm
  • gcc-debuginfo-4.4.6-3.el6.ppc64.rpm
  • cpp-4.4.6-3.el6.x86_64.rpm
  • gcc-java-4.4.6-3.el6.x86_64.rpm
  • libgfortran-4.4.6-3.el6.x86_64.rpm
  • libgomp-4.4.6-3.el6.x86_64.rpm
  • gcc-4.4.6-3.el6.s390x.rpm
  • libgcc-4.4.6-3.el6.x86_64.rpm
  • libgcj-devel-4.4.6-3.el6.s390.rpm
  • gcc-4.4.6-3.el6.ppc64.rpm
  • libgcj-4.4.6-3.el6.ppc64.rpm
  • libgcc-4.4.6-3.el6.ppc64.rpm
  • cpp-4.4.6-3.el6.ppc64.rpm
  • libgomp-4.4.6-3.el6.s390x.rpm
  • libmudflap-devel-4.4.6-3.el6.s390x.rpm
  • libobjc-4.4.6-3.el6.s390x.rpm
  • libgcj-4.4.6-3.el6.i686.rpm
  • libgnat-devel-4.4.6-3.el6.i686.rpm
  • gcc-gnat-4.4.6-3.el6.x86_64.rpm
  • cpp-4.4.6-3.el6.i686.rpm
  • libgcj-4.4.6-3.el6.x86_64.rpm
  • gcc-c++-4.4.6-3.el6.ppc64.rpm
  • libgomp-4.4.6-3.el6.i686.rpm
  • libgcj-src-4.4.6-3.el6.i686.rpm
  • libstdc++-4.4.6-3.el6.ppc.rpm
  • libmudflap-4.4.6-3.el6.ppc64.rpm
  • cpp-4.4.6-3.el6.s390x.rpm
  • libmudflap-4.4.6-3.el6.ppc.rpm
  • libmudflap-4.4.6-3.el6.x86_64.rpm
  • libobjc-4.4.6-3.el6.ppc64.rpm
  • gcc-debuginfo-4.4.6-3.el6.s390.rpm
  • libmudflap-devel-4.4.6-3.el6.i686.rpm
  • libgnat-devel-4.4.6-3.el6.ppc.rpm
  • gcc-gfortran-4.4.6-3.el6.x86_64.rpm
  • gcc-java-4.4.6-3.el6.i686.rpm
  • libgcj-4.4.6-3.el6.ppc.rpm
  • gcc-objc++-4.4.6-3.el6.x86_64.rpm
  • libgcc-4.4.6-3.el6.i686.rpm
  • libgcj-devel-4.4.6-3.el6.x86_64.rpm
  • gcc-objc++-4.4.6-3.el6.ppc64.rpm
  • gcc-objc-4.4.6-3.el6.i686.rpm
  • libgcj-4.4.6-3.el6.s390.rpm
  • gcc-objc-4.4.6-3.el6.ppc64.rpm
  • libgcj-devel-4.4.6-3.el6.i686.rpm
  • gcc-debuginfo-4.4.6-3.el6.i686.rpm
  • libgcj-devel-4.4.6-3.el6.ppc64.rpm
  • libgnat-4.4.6-3.el6.ppc.rpm
  • libstdc++-4.4.6-3.el6.ppc64.rpm
  • gcc-debuginfo-4.4.6-3.el6.ppc.rpm
  • libgcj-devel-4.4.6-3.el6.s390x.rpm
  • libmudflap-4.4.6-3.el6.s390x.rpm
  • gcc-gfortran-4.4.6-3.el6.s390x.rpm
  • libgfortran-4.4.6-3.el6.s390x.rpm
  • libstdc++-4.4.6-3.el6.i686.rpm

Fixes

CVEs

(none)

References

(none)


Additional information