GCC 4.7.2 is the first bug-fix release containing important fixes
for regressions and serious bugs in GCC 4.7.1 with over 70 bugs
fixed since the previous release.
A notable change in GCC 4.7.2 compared to 4.7.1 are ABI bug fixes
related to some C++11 templates (std::list and std::pair). As a result,
code using those templates in C++11 mode is again ABI compatible with
code in C++03/C++98 mode or C++11 mode of GCC 4.6 and earlier, but might
be ABI incompatible with code compiled by GCC 4.7.1 or 4.7.0 in C++11
mode. See http://gcc.gnu.org/gcc-4.7/changes.html for more details.
This is the list of problem reports (PRs) from GCC's bug tracking system
that are known to be fixed in this release. This list might not be complete
(that is, it is possible that some PRs that have been fixed are not listed
here).
http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.2
Like i386-FreeBSD, the i386-DragonFly floating point unit uses a 53-bit
mantissa. GCC uses the TARGET_96_ROUND_53_LONG_DOUBLE macro to know
which platforms behave this way.
Unfortunately, setting this macro to 1 breaks precision on Ada, and
leaving it at 0 breaks precision on c/c++ long double handling. However
lang/gcc47 likely will never support Ada, so we'll favor c/c++. This
is only an issue for i386; the setting on x86_64 should be zero as it
uses 64-bit precision.
GCC47 was marked NOT-FOR-DRAGONFLY, so support has been added.
* DragonFly-specific files added via patch mechanism
* Some existing patches modified to add DragonFly configuration items
* dl_iterate_phdr error handling support added (FreeBSD support was altered,
NetBSD and OpenBSD support is commented out)
* The java language is taken off as a default option
On the i386 platform, the compiler will build from a full bootstrap, but
one of the later stages fails on x86_64. It fails to find libstdc++.so.6
even though the previous stage library was built and -B, -L flags point
to it. The cause of the platform-specific build failure isn't clear --
The workaround is to disable the bootstrap on DragonFly so that the compiler
is built in one stage instead of three. This workaround could have been
limited to the x86_64-DragonFly platform only, but currently is applied to
i386-DragonFly too.
being NULL.
When building a single ABI capable gcc (e.g. 32bit systems), multilib_os_dir
may be NULL and this would cause gcc to segfault when trying to link libgcc.
Thanks to Filip Hajny for isolating the problem to the %M patch.
Three situations need it be handled:
1) Multilib support is unknowen, i.e. there is nothing in the options.mk
file to appropriately set ${MULTILIB_SUPPORTED} (currently all platforms
except Linux/x86_64). In this situation nothing should be done.
2) Multilib _is_ supported, in this situation the 'gcc-multilib' option
should be made available and the CONFIGURE_ARGS modified accordingly.
3) Multilib _is not_ supported, in this situation CONFIGURE_ARGS need to
be modified.
GCC 4.7.0 is a major release, containing substantial new
functionality not available in GCC 4.6.x or previous GCC releases.
GCC 4.7 features support for software transactional memory on
selected architectures. The C++ compiler supports a bigger
subset of the new ISO C++11 standard such as support for atomics
and the C++11 memory model, non-static data member initializers,
user-defined literals, alias-declarations, delegating constructors,
explicit override and extended friend syntax. The C compiler adds support
for more features from the new ISO C11 standard. GCC now supports
version 3.1 of the OpenMP specification for C, C++ and Fortran.
The link-time optimization (LTO) framework has seen improvements
with regards to scalability, stability and resource needs. Inlining
and interprocedural constant propagation have been improved.
GCC 4.7 now supports various new GNU extensions to the DWARF debugging
information format, like entry value and call site information, a typed
DWARF stack and a more compact macro representation.
Extending the widest support for hardware architectures in the
industry, GCC 4.7 gains support for Adapteva's Epiphany processor,
National Semiconductor's CR16, and TI's C6X as well as Tilera's
TILE-Gx and TILEPro families of processors. The x86
family support has been extended by the Intel Haswell and AMD Piledriver
architectures. ARM has gained support for the Cortex-A7 family.
See
http://gcc.gnu.org/gcc-4.7/changes.html
for more information about changes in GCC 4.7.