patch files/patch-libjava-classpath-scripts-check_jni_methods.sh.in.
Escapes of ordinary characters will be disallowed by regex(3) in the
future. [1]
While here already, factor out a proper USES block in the Makefile. [2]
PR: 233443 [1]
Submitted by: kevans [1]
Reported by: portlint [2]
fixes and closes the GCC 6 release branch.
files/patch-armv7-support and files/patch-freebsd-unwind.h made it
upstream in between GCC 6.4 and GCC 6.5, so remove them.
that addresses a real-world issue around threading and unwinding as
files/patch-freebsd-unwind.h .
This will become obsolete with the next release of GCC 6, GCC 6.5.
Bump PORTREVISION since this is a functional change.
On the way fix up the format for files/patch-armv7-support . [1]
Reported by: portlint [1]
This now comes as an xz archive, so update USES=tar accordingly.
Also this now includes
files/patch-aarch64-support,
files/patch-libgcc-config-arm-unwind-arm, and
files/patch-x86-64-fix-m16
which andreast@ and me pushed upstream.
On the other hand we gain bin/gcov-dump6 and man pages for gcov-dump6
and gcov-tool6.
Finally, as with lang/gcc5 and lang/gcc6-devel, remove headers being
created by GCC's fixincludes machinery from the installation / packaging
to avoid breakage when FreeBSD's headers are changing afterwards.
for arm*-*-freebsd*.
This patch is already pushed upstream to all active gcc branches.
GCC-5, GCC-6, GCC-7 and trunk. The gcc?-devel ports will catch up these bits
with the next update.
Once a new release for gcc6 or gcc5 is done, this patch will be obsolete.
Approved by: gerald@ (maintainer)
port.
The same applies here as on the lang/gcc5 port, as soon as GCC releases
a new gcc6, these bits go away. Iow, they are already part of the gcc6-devel
branch.
Approved by: gerald(maintainer)
Omit the definition of DISTVERSION which is only necessary for ports
tracking snapshots of GCC and simplify the definition of GCC_VERSION
(but keep the latter as a variable to align the gcc6-devel and gcc6 ports).
Remove files/patch-unwind-ia64.h since we have not been supporting ia64
with this release series (ONLY_FOR_ARCHS has not been including ia64).
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]
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.