- Issued:
- 2013-02-20
- Updated:
- 2013-02-20
RHBA-2013:0420 - gcc bug fix update
Synopsis
gcc bug fix update
Type/Severity
Bug Fix Advisory (none)
Topic
Updated gcc packages that fix several bugs are now available for Red Hat Enterprise Linux 6.
Description
The gcc packages provide compilers for C, C++, Java, Fortran, Objective C, and Ada 95 GNU, as well as related support libraries.
This update fixes the following bugs:
-
Due to the incorrect size of a pointer in GCC GNAT code, GNAT used an incorrect function of the libgcc library when compiling 32-bit Ada binaries on PowerPC architecture. Consequently, these programs could not be linked and the compilation failed. This update fixes the problem so that the sizeof operator now returns the correct size of a pointer, and the appropriate function from libgcc is called. GNAT compiles Ada binaries as expected in this scenario. (BZ#801144)
-
The Standard Template Library (STL) contained an incomplete move semantics implementation, which could cause GCC to generate incorrect code. The incorrect headers have been fixed so that GCC now produce the expected code when depending on move semantics. (BZ#808590)
-
GCC did not, under certain circumstances, handle generating a CPU instruction sequence that would be independent of indexed addressing on PowerPC architecture. As a consequence, an internal compiler error occurred if the "__builtin_bswap64" built-in function was called with the "-mcpu=power6" option. This update corrects the relevant code so that GCC now generates an alternate instruction sequence that does not depend on indexed addressing in this scenario. (BZ#819100)
-
A bug in converting the exception handling region could cause an internal compiler error to occur when compiling profile data with the "-fprofile-use" and "-freorder-basic-blocks-and-partition" options. This update fixes the erroneous code and the compilation of profile data now proceeds as expected in this scenario. (BZ#821901)
-
Previously, GCC did not properly handle certain situations when an enumeration was type cast using the static_cast operator. Consequently, an enumeration item could have been assigned an integer value greater than the highest value of the enumeration's range. If the compiled code contained testing conditions using such enumerations, those checks were incorrectly removed from the code during code optimization. With this update, GCC was modified to handle enumeration type casting properly and C++ now no longer removes the mentioned checks. (BZ#826882)
-
Previously, when comparing the trees equality, the members of a union or structure were not handled properly in the C++ compiler. This led to an internal compiler error. This update modifies GCC so that unions and structures are now handled correctly and code that uses tree equality comparing is now compiled successfully. (BZ#831832)
-
GCC previously processed the "srak" instructions without the z196 flag, which enables a compiler to work with these instructions. Consequently, some binaries, such as Firefox, could not be compiled on IBM System z and IBM S/390 architectures. With this update, GCC has been modified to support the z196 flag for the srak instructions, and binaries requiring these instructions can now be compiled successfully on IBM System z and IBM S/390 architectures. (BZ#867878)
All users of gcc are advised to upgrade to these updated packages, which fix these bugs.
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
| Product | Version | Arch |
|---|---|---|
| Red Hat Enterprise Linux for Scientific Computing | 6 | x86_64 |
| Red Hat Enterprise Linux for Power, big endian | 6 | ppc64 |
| Red Hat Enterprise Linux for IBM z Systems | 6 | s390x |
| Red Hat Enterprise Linux Workstation | 6 | x86_64 |
| Red Hat Enterprise Linux Workstation | 6 | i386 |
| Red Hat Enterprise Linux Server | 6 | x86_64 |
| Red Hat Enterprise Linux Server | 6 | i386 |
| Red Hat Enterprise Linux Server from RHUI | 6 | x86_64 |
| Red Hat Enterprise Linux Server from RHUI | 6 | i386 |
| Red Hat Enterprise Linux Server - Retired Extended Life Cycle Support | 6 | x86_64 |
| Red Hat Enterprise Linux Server - Extended Life Cycle Support | 6 | x86_64 |
| Red Hat Enterprise Linux Server - Extended Life Cycle Support | 6 | i386 |
| Red Hat Enterprise Linux Server - Extended Life Cycle Support Extension | 6 | x86_64 |
| Red Hat Enterprise Linux Server - Extended Life Cycle Support Extension | 6 | i386 |
| Red Hat Enterprise Linux Server - Extended Life Cycle Support Extension (for IBM z Systems) | 6 | s390x |
| Red Hat Enterprise Linux Server - Extended Life Cycle Support (for IBM z Systems) | 6 | s390x |
| Red Hat Enterprise Linux Desktop | 6 | x86_64 |
| Red Hat Enterprise Linux Desktop | 6 | i386 |
Updated Packages
- libmudflap-4.4.7-3.el6.i686.rpm
- libgcj-devel-4.4.7-3.el6.ppc.rpm
- gcc-4.4.7-3.el6.x86_64.rpm
- gcc-objc-4.4.7-3.el6.i686.rpm
- libstdc++-4.4.7-3.el6.s390.rpm
- gcc-4.4.7-3.el6.ppc64.rpm
- libstdc++-4.4.7-3.el6.ppc64.rpm
- cpp-4.4.7-3.el6.s390x.rpm
- gcc-java-4.4.7-3.el6.s390x.rpm
- libgcj-src-4.4.7-3.el6.ppc64.rpm
- libgomp-4.4.7-3.el6.i686.rpm
- gcc-objc++-4.4.7-3.el6.x86_64.rpm
- libgfortran-4.4.7-3.el6.x86_64.rpm
- libgfortran-4.4.7-3.el6.s390x.rpm
- libstdc++-devel-4.4.7-3.el6.s390x.rpm
- libgomp-4.4.7-3.el6.ppc64.rpm
- libgnat-devel-4.4.7-3.el6.i686.rpm
- libgnat-4.4.7-3.el6.i686.rpm
- gcc-debuginfo-4.4.7-3.el6.ppc.rpm
- libmudflap-devel-4.4.7-3.el6.s390.rpm
- gcc-gfortran-4.4.7-3.el6.i686.rpm
- libstdc++-devel-4.4.7-3.el6.x86_64.rpm
- gcc-debuginfo-4.4.7-3.el6.x86_64.rpm
- libgnat-4.4.7-3.el6.ppc.rpm
- libstdc++-devel-4.4.7-3.el6.i686.rpm
- libgcj-src-4.4.7-3.el6.x86_64.rpm
- gcc-objc-4.4.7-3.el6.ppc64.rpm
- libgfortran-4.4.7-3.el6.ppc.rpm
- libmudflap-devel-4.4.7-3.el6.s390x.rpm
- libstdc++-4.4.7-3.el6.ppc.rpm
- libobjc-4.4.7-3.el6.x86_64.rpm
- libmudflap-devel-4.4.7-3.el6.x86_64.rpm
- gcc-debuginfo-4.4.7-3.el6.ppc64.rpm
- libgnat-devel-4.4.7-3.el6.ppc64.rpm
- gcc-c++-4.4.7-3.el6.s390x.rpm
- libgcj-src-4.4.7-3.el6.i686.rpm
- cpp-4.4.7-3.el6.i686.rpm
- libstdc++-devel-4.4.7-3.el6.ppc.rpm
- libstdc++-devel-4.4.7-3.el6.s390.rpm
- libobjc-4.4.7-3.el6.ppc64.rpm
- libgcj-devel-4.4.7-3.el6.s390.rpm
- gcc-objc-4.4.7-3.el6.s390x.rpm
- libmudflap-devel-4.4.7-3.el6.i686.rpm
- libgcj-4.4.7-3.el6.x86_64.rpm
- gcc-objc++-4.4.7-3.el6.s390x.rpm
- libgcj-4.4.7-3.el6.s390x.rpm
- libgomp-4.4.7-3.el6.x86_64.rpm
- gcc-debuginfo-4.4.7-3.el6.i686.rpm
- gcc-objc-4.4.7-3.el6.x86_64.rpm
- libgcj-devel-4.4.7-3.el6.x86_64.rpm
- libstdc++-docs-4.4.7-3.el6.i686.rpm
- libgomp-4.4.7-3.el6.s390.rpm
- cpp-4.4.7-3.el6.ppc64.rpm
- gcc-gfortran-4.4.7-3.el6.ppc64.rpm
- libmudflap-4.4.7-3.el6.ppc.rpm
- libstdc++-4.4.7-3.el6.x86_64.rpm
- gcc-4.4.7-3.el6.i686.rpm
- libgcc-4.4.7-3.el6.ppc64.rpm
- gcc-debuginfo-4.4.7-3.el6.s390x.rpm
- gcc-c++-4.4.7-3.el6.ppc64.rpm
- gcc-gfortran-4.4.7-3.el6.s390x.rpm
- libgcj-src-4.4.7-3.el6.s390x.rpm
- libobjc-4.4.7-3.el6.s390x.rpm
- libgomp-4.4.7-3.el6.s390x.rpm
- libgnat-4.4.7-3.el6.ppc64.rpm
- libobjc-4.4.7-3.el6.i686.rpm
- gcc-java-4.4.7-3.el6.x86_64.rpm
- gcc-debuginfo-4.4.7-3.el6.s390.rpm
- gcc-java-4.4.7-3.el6.ppc64.rpm
- gcc-gnat-4.4.7-3.el6.i686.rpm
- libgnat-devel-4.4.7-3.el6.ppc.rpm
- libgcj-devel-4.4.7-3.el6.i686.rpm
- libstdc++-4.4.7-3.el6.i686.rpm
- libmudflap-devel-4.4.7-3.el6.ppc.rpm
- gcc-gfortran-4.4.7-3.el6.x86_64.rpm
- libgnat-devel-4.4.7-3.el6.x86_64.rpm
- libgcj-4.4.7-3.el6.i686.rpm
- gcc-gnat-4.4.7-3.el6.x86_64.rpm
- gcc-c++-4.4.7-3.el6.i686.rpm
- libobjc-4.4.7-3.el6.ppc.rpm
- libgcc-4.4.7-3.el6.s390x.rpm
- libmudflap-4.4.7-3.el6.s390.rpm
- libgcc-4.4.7-3.el6.i686.rpm
- gcc-4.4.7-3.el6.s390x.rpm
- cpp-4.4.7-3.el6.x86_64.rpm
- libmudflap-4.4.7-3.el6.ppc64.rpm
- libgcj-devel-4.4.7-3.el6.ppc64.rpm
- libstdc++-devel-4.4.7-3.el6.ppc64.rpm
- libstdc++-docs-4.4.7-3.el6.ppc64.rpm
- libobjc-4.4.7-3.el6.s390.rpm
- libstdc++-4.4.7-3.el6.s390x.rpm
- libgomp-4.4.7-3.el6.ppc.rpm
- libgcc-4.4.7-3.el6.ppc.rpm
- gcc-4.4.7-3.el6.src.rpm
- libgcc-4.4.7-3.el6.x86_64.rpm
- libgnat-4.4.7-3.el6.x86_64.rpm
- libgcc-4.4.7-3.el6.s390.rpm
- gcc-java-4.4.7-3.el6.i686.rpm
- libgfortran-4.4.7-3.el6.ppc64.rpm
- libmudflap-4.4.7-3.el6.s390x.rpm
- libgfortran-4.4.7-3.el6.s390.rpm
- libgfortran-4.4.7-3.el6.i686.rpm
- libgcj-4.4.7-3.el6.ppc.rpm
- libgcj-4.4.7-3.el6.ppc64.rpm
- libstdc++-docs-4.4.7-3.el6.s390x.rpm
- gcc-objc++-4.4.7-3.el6.i686.rpm
- gcc-c++-4.4.7-3.el6.x86_64.rpm
- gcc-gnat-4.4.7-3.el6.ppc64.rpm
- libmudflap-devel-4.4.7-3.el6.ppc64.rpm
- libstdc++-docs-4.4.7-3.el6.x86_64.rpm
- libgcj-devel-4.4.7-3.el6.s390x.rpm
- gcc-objc++-4.4.7-3.el6.ppc64.rpm
- libgcj-4.4.7-3.el6.s390.rpm
- libmudflap-4.4.7-3.el6.x86_64.rpm
Fixes
CVEs
(none)
References
(none)
Additional information
- The Red Hat security contact is This content is not included.secalert@redhat.com. More contact details at https://access.redhat.com/security/team/contact/.
- Offline Security Data data is available for integration with other systems. See Offline Security Data API to get started.