Issued:
2012-06-20
Updated:
2012-06-20

RHBA-2012:0941 - 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 one enhancement 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 gfortran compiler could fail to compile the code with an internal compiler error. This happened because the gfc_type_for_size() function from the trans-types.c library did not return the correct data type if the demanded bit precision was less than the built-in bit precision size of the corresponding type. With this update, the function returns the corresponding wider type if no suitable narrower type has been found and the code is compiled correctly. (BZ#751767)

  • The G++ compiler terminated unexpectedly with a segmentation fault and returned an internal compiler error when compiling with the -O2 or -O3 optimization option. This happened because the compiler tried to cancel the same loop twice in the remove_path() function. With this update, the loop is canceled only once and the segmentation fault no longer occurs in this scenario. (BZ#756138)

  • Previously, GCC could generate incorrect code if combining instructions when splitting a two-set pattern. This was due to an error in the way the split patterns were handled while combining the instructions. With this update, the code handling instruction combining has been fixed and the problem no longer occurs. (BZ#756651)

  • Previously, GCC could terminate unexpectedly with an internal compiler error, which was triggered by aggressive loop peeling enabled by the "-mtune=z10" setting when moving registers. With this update, the registers are determined from the instruction patterns correctly and the compilation succeeds in this scenario. (BZ#767604)

  • Typing into Web Console in Firefox caused Firefox to terminate unexpectedly. This happened because the compiler incorrectly cloned one of the functions called under these circumstances. With this update, the function is no longer cloned and the problem no longer occurs. (BZ#799491)

In addition, this update adds the following enhancement:

  • Previously, the GCC compiler did not contain the header with functions for converting the half-float type. This update adds the header and also fixes GCC so that it works correctly with the "-march=native" option on AMD FX processor microarchitectures. (BZ#739443)

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

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 https://access.redhat.com/knowledge/articles/11258

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

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

Fixes

CVEs

(none)

References

(none)


Additional information