|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
files/patch-armv6-hf-support has been accepted upstream, even
on the GCC 6-branch this release comes from, so remove it.
Backport the following from lang/gcc6-devel:
GCC uses an AWK script to generate source code that helps process
command-line options. According to POSIX, string comparisons (and
hence sorting) are to be performed based on the locale's collating
order. Alas GNU AWK only does so in POSIX mode, whereas starting
with FreeBSD 11 we do so by default, running into a bug (or false
assumption) with that script used by GCC.
Setting MAKE_ARGS such that AWK is always invoked in the C locale
works around this bug. [1]
PR: 210122 [1], 211742 [1]
Submitted by: jkim [1]
Notes:
svn path=/head/; revision=420613
|
|
The default mode for C++ is now -std=gnu++14 instead of -std=gnu++98.
Type-based alias analysis now disambiguates accesses to different pointers.
This improves precision of the alias oracle by about 20-30% on higher-level
C++ programs. Programs doing invalid type punning of pointer types may now
need -fno-strict-aliasing to work correctly.
Value range propagation now assumes that the this pointer of C++ member
functions is non-null. This eliminates common null pointer checks but also
breaks some non-conforming code-bases (such as Qt-5, Chromium, KDevelop).
As a temporary work-around -fno-delete-null-pointer-checks can be used.
Wrong code can be identified by using -fsanitize=undefined.
There have been significant improvements around link-time optimization
and inter-procedural optimization and some support for OpenACC (though
probably not tested on FreeBSD) and version 4.5 of the OpenMP specification.
Source locations for the C and C++ compilers are now tracked as ranges
and diagnostics can now contain "fix-it hints".
New command-line options include -Wshift-negative-value, -Wshift-overflow,
-Wtautological-compare, -Wnull-dereference, -Wduplicated-cond, and
-Wmisleading-indentation.
C++ Concepts are now supported when compiling with -fconcepts, and there
are several other improvements around support for newer C++ features as
well as in the libstdc++ library.
Fortran now features Fortran 2008 SUBMODULE support, Fortran 2015 EVENT_TYPE,
EVENT_POST, EVENT_WAIT, and EVENT_QUERY support, and improved support for
OpenMP and OpenACC.
A lot has happened on the AArch64 and ARM fronts, on x86-64 there is now
Skylake with AVX-512 support, AMD instructions monitorx and mwaitx, and
support for address spaces __seg_fs, __seg_gs, and __seg_tl, as well as
AMD Zen (family 17h) processors, and basic support has been added for POWER9.
https://gcc.gnu.org/gcc-6/changes.html has a more extensive set of
changes and https://gcc.gnu.org/gcc-6/porting_to.html has a solid
overview of issue you may encountering porting to this new version.
Notes:
svn path=/head/; revision=416661
|