diff --git a/lang/gcc6/Makefile b/lang/gcc6/Makefile index 3eaac6abb82b..0fc43e4af2bd 100644 --- a/lang/gcc6/Makefile +++ b/lang/gcc6/Makefile @@ -2,8 +2,7 @@ # $FreeBSD$ PORTNAME= gcc -PORTVERSION= 6.3.0 -PORTREVISION= 3 +PORTVERSION= 6.4.0 CATEGORIES= lang java MASTER_SITES= GCC/releases/gcc-${DISTVERSION} PKGNAMESUFFIX= ${SUFFIX} @@ -31,7 +30,7 @@ CPE_VENDOR= gnu GCC_VERSION= ${PORTVERSION} SUFFIX= ${PORTVERSION:C/([0-9]+).*/\1/} ONLY_FOR_ARCHS= aarch64 amd64 arm armv6 i386 powerpc powerpc64 sparc64 -USES= compiler cpe gmake iconv libtool makeinfo perl5 tar:bzip2 +USES= compiler cpe gmake iconv libtool makeinfo perl5 tar:xz USE_BINUTILS= yes USE_PERL5= build SSP_UNSAFE= yes @@ -163,6 +162,7 @@ post-stage: ${RM} ${STAGEDIR}${PREFIX}/man/man7/* ${RM} ${STAGEDIR}${PREFIX}/bin/rebuild-gcj-db${SUFFIX} \ ${STAGEDIR}${PREFIX}/man/man1/rebuild-gcj-db${SUFFIX}.1 + ${RM} -r ${STAGEDIR}${TARGLIB}/gcc/*/${GCC_VERSION}/include-fixed/ # Add target libraries and include files to packaging list. ${RM} ${WRKDIR}/PLIST.lib .for d in ${TARGLIB:S/^${PREFIX}\///} ${LIBEXEC:S/^${PREFIX}\///} include/gcj include/gnu include/java include/javax diff --git a/lang/gcc6/distinfo b/lang/gcc6/distinfo index 921e87c4f1cf..6980b2714fe6 100644 --- a/lang/gcc6/distinfo +++ b/lang/gcc6/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1482692157 -SHA256 (gcc-6.3.0.tar.bz2) = f06ae7f3f790fbf0f018f6d40e844451e6bc3b7bc96e128e63b09825c1f8b29f -SIZE (gcc-6.3.0.tar.bz2) = 99903185 +TIMESTAMP = 1499443012 +SHA256 (gcc-6.4.0.tar.xz) = 850bf21eafdfe5cd5f6827148184c08c4a0852a37ccf36ce69855334d2c914d4 +SIZE (gcc-6.4.0.tar.xz) = 76156220 diff --git a/lang/gcc6/files/patch-aarch64-support b/lang/gcc6/files/patch-aarch64-support deleted file mode 100644 index f8dbdacb9688..000000000000 --- a/lang/gcc6/files/patch-aarch64-support +++ /dev/null @@ -1,235 +0,0 @@ ---- UTC ---- configure.ac.orig 2016-03-17 23:54:19.000000000 +0100 -+++ configure.ac 2016-10-20 21:29:03.780044000 +0200 -@@ -819,6 +819,9 @@ - *-*-vxworks*) - noconfigdirs="$noconfigdirs ${libgcj}" - ;; -+ aarch64*-*-freebsd*) -+ noconfigdirs="$noconfigdirs ${libgcj}" -+ ;; - alpha*-*-*vms*) - noconfigdirs="$noconfigdirs ${libgcj}" - ;; ---- configure.orig 2016-03-17 23:54:19.000000000 +0100 -+++ configure 2016-10-20 21:29:03.779159000 +0200 -@@ -3483,6 +3483,9 @@ - *-*-vxworks*) - noconfigdirs="$noconfigdirs ${libgcj}" - ;; -+ aarch64*-*-freebsd*) -+ noconfigdirs="$noconfigdirs ${libgcj}" -+ ;; - alpha*-*-*vms*) - noconfigdirs="$noconfigdirs ${libgcj}" - ;; ---- libgcc/config.host.orig 2016-05-17 08:15:52.000000000 +0200 -+++ libgcc/config.host 2016-10-20 21:29:03.782426000 +0200 -@@ -333,6 +333,11 @@ - tmake_file="${tmake_file} ${cpu_type}/t-aarch64" - tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm" - ;; -+aarch64*-*-freebsd*) -+ extra_parts="$extra_parts crtfastmath.o" -+ tmake_file="${tmake_file} ${cpu_type}/t-aarch64" -+ tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm" -+ ;; - aarch64*-*-linux*) - extra_parts="$extra_parts crtfastmath.o" - md_unwind_header=aarch64/linux-unwind.h ---- gcc/config.host.orig 2016-01-04 15:30:50.000000000 +0100 -+++ gcc/config.host 2016-10-20 21:29:03.781971000 +0200 -@@ -99,7 +99,7 @@ - esac - - case ${host} in -- aarch64*-*-linux*) -+ aarch64*-*-freebsd* | aarch64*-*-linux*) - case ${target} in - aarch64*-*-*) - host_extra_gcc_objs="driver-aarch64.o" ---- gcc/config.gcc.orig 2016-06-08 15:34:25.000000000 +0200 -+++ gcc/config.gcc 2016-10-20 21:29:03.781684000 +0200 -@@ -941,6 +941,11 @@ - done - TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'` - ;; -+aarch64*-*-freebsd*) -+ tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file}" -+ tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-freebsd.h" -+ tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd" -+ ;; - aarch64*-*-linux*) - tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h" - tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-linux.h" ---- gcc/config/aarch64/t-aarch64-freebsd.orig 2016-10-20 21:29:03.780409000 +0200 -+++ gcc/config/aarch64/t-aarch64-freebsd 2016-10-20 21:29:03.780540000 +0200 -@@ -0,0 +1,21 @@ -+# Machine description for AArch64 architecture. -+# Copyright (C) 2016 Free Software Foundation, Inc. -+# -+# This file is part of GCC. -+# -+# GCC is free software; you can redistribute it and/or modify it -+# under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 3, or (at your option) -+# any later version. -+# -+# GCC is distributed in the hope that it will be useful, but -+# WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+# General Public License for more details. -+# -+# You should have received a copy of the GNU General Public License -+# along with GCC; see the file COPYING3. If not see -+# . -+ -+LIB1ASMSRC = aarch64/lib1funcs.asm -+LIB1ASMFUNCS = _aarch64_sync_cache_range ---- gcc/config/aarch64/aarch64-freebsd.h.orig 2016-10-20 21:29:03.780130000 +0200 -+++ gcc/config/aarch64/aarch64-freebsd.h 2016-10-20 21:29:03.780349000 +0200 -@@ -0,0 +1,99 @@ -+/* Definitions for AArch64 running FreeBSD -+ Copyright (C) 2016 Free Software Foundation, Inc. -+ -+ This file is part of GCC. -+ -+ GCC is free software; you can redistribute it and/or modify it -+ under the terms of the GNU General Public License as published by -+ the Free Software Foundation; either version 3, or (at your option) -+ any later version. -+ -+ GCC is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License -+ along with GCC; see the file COPYING3. If not see -+ . */ -+ -+#ifndef GCC_AARCH64_FREEBSD_H -+#define GCC_AARCH64_FREEBSD_H -+ -+#undef SUBTARGET_CPP_SPEC -+#define SUBTARGET_CPP_SPEC FBSD_CPP_SPEC -+ -+#if TARGET_BIG_ENDIAN_DEFAULT -+#define TARGET_LINKER_EMULATION "aarch64fbsdb" -+#else -+#define TARGET_LINKER_EMULATION "aarch64fbsd" -+#endif -+ -+#undef SUBTARGET_EXTRA_LINK_SPEC -+#define SUBTARGET_EXTRA_LINK_SPEC " -m" TARGET_LINKER_EMULATION -+ -+#undef FBSD_TARGET_LINK_SPEC -+#define FBSD_TARGET_LINK_SPEC " \ -+ %{p:%nconsider using `-pg' instead of `-p' with gprof (1) } \ -+ %{v:-V} \ -+ %{assert*} %{R*} %{rpath*} %{defsym*} \ -+ %{shared:-Bshareable %{h*} %{soname*}} \ -+ %{symbolic:-Bsymbolic} \ -+ %{static:-Bstatic} \ -+ %{!static: \ -+ %{rdynamic:-export-dynamic} \ -+ %{!shared:-dynamic-linker " FBSD_DYNAMIC_LINKER " }} \ -+ -X" SUBTARGET_EXTRA_LINK_SPEC " \ -+ %{mbig-endian:-EB} %{mlittle-endian:-EL}" -+ -+#if TARGET_FIX_ERR_A53_835769_DEFAULT -+#define CA53_ERR_835769_SPEC \ -+ " %{!mno-fix-cortex-a53-835769:--fix-cortex-a53-835769}" -+#else -+#define CA53_ERR_835769_SPEC \ -+ " %{mfix-cortex-a53-835769:--fix-cortex-a53-835769}" -+#endif -+ -+#ifdef TARGET_FIX_ERR_A53_843419_DEFAULT -+#define CA53_ERR_843419_SPEC \ -+ " %{!mno-fix-cortex-a53-843419:--fix-cortex-a53-843419}" -+#else -+#define CA53_ERR_843419_SPEC \ -+ " %{mfix-cortex-a53-843419:--fix-cortex-a53-843419}" -+#endif -+ -+#undef LINK_SPEC -+#define LINK_SPEC FBSD_TARGET_LINK_SPEC \ -+ CA53_ERR_835769_SPEC \ -+ CA53_ERR_843419_SPEC -+ -+#define GNU_USER_TARGET_MATHFILE_SPEC \ -+ "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s}" -+ -+#undef ENDFILE_SPEC -+#define ENDFILE_SPEC \ -+ GNU_USER_TARGET_MATHFILE_SPEC " " \ -+ FBSD_ENDFILE_SPEC -+ -+#undef TARGET_OS_CPP_BUILTINS -+#define TARGET_OS_CPP_BUILTINS() \ -+ do \ -+ { \ -+ FBSD_TARGET_OS_CPP_BUILTINS (); \ -+ } \ -+ while (false) -+ -+#define TARGET_ASM_FILE_END file_end_indicate_exec_stack -+ -+/* Uninitialized common symbols in non-PIE executables, even with -+ strong definitions in dependent shared libraries, will resolve -+ to COPY relocated symbol in the executable. See PR65780. */ -+#undef TARGET_BINDS_LOCAL_P -+#define TARGET_BINDS_LOCAL_P default_binds_local_p_2 -+ -+/* Use the AAPCS type for wchar_t, override the one from -+ config/freebsd.h. */ -+#undef WCHAR_TYPE -+#define WCHAR_TYPE "unsigned int" -+ -+#endif /* GCC_AARCH64_FREEBSD_H */ -Index: gcc/dwarf2out.c -=================================================================== ---- gcc/dwarf2out.c (revision 244100) -+++ gcc/dwarf2out.c (working copy) -@@ -23752,7 +23752,16 @@ - { - dw_die_ref die = lookup_decl_die (decl); - if (die) -- add_location_or_const_value_attribute (die, decl, false); -+ { -+ /* We get called via the symtab code invoking late_global_decl -+ for symbols that are optimized out. Do not add locations -+ for those. */ -+ varpool_node *node = varpool_node::get (decl); -+ if (! node || ! node->definition) -+ tree_add_const_value_attribute_for_decl (die, decl); -+ else -+ add_location_or_const_value_attribute (die, decl, false); -+ } - } - } - -Index: gcc/cgraphunit.c -=================================================================== ---- gcc/cgraphunit.c (revision 244100) -+++ gcc/cgraphunit.c (working copy) -@@ -1193,8 +1193,16 @@ - at looking at optimized away DECLs, since - late_global_decl will subsequently be called from the - contents of the now pruned symbol table. */ -- if (!decl_function_context (node->decl)) -- (*debug_hooks->late_global_decl) (node->decl); -+ if (VAR_P (node->decl) -+ && !decl_function_context (node->decl)) -+ { -+ /* We are reclaiming totally unreachable code and variables -+ so they effectively appear as readonly. Show that to -+ the debug machinery. */ -+ TREE_READONLY (node->decl) = 1; -+ node->definition = false; -+ (*debug_hooks->late_global_decl) (node->decl); -+ } - - node->remove (); - continue; diff --git a/lang/gcc6/files/patch-libgcc-config-arm-unwind-arm b/lang/gcc6/files/patch-libgcc-config-arm-unwind-arm deleted file mode 100644 index d332d2bf867a..000000000000 --- a/lang/gcc6/files/patch-libgcc-config-arm-unwind-arm +++ /dev/null @@ -1,51 +0,0 @@ ---- UTC ---- libgcc/config/arm/unwind-arm.h.orig 2017-05-20 23:16:46.089160000 +0200 -+++ libgcc/config/arm/unwind-arm.h 2017-05-20 23:17:17.447204000 +0200 -@@ -72,12 +72,19 @@ - { - return _URC_FAILURE; - } -+#ifndef __FreeBSD__ - /* Return the address of the instruction, not the actual IP value. */ - #define _Unwind_GetIP(context) \ - (_Unwind_GetGR (context, 15) & ~(_Unwind_Word)1) - - #define _Unwind_SetIP(context, val) \ - _Unwind_SetGR (context, 15, val | (_Unwind_GetGR (context, 15) & 1)) -+#else -+ #undef _Unwind_GetIPInfo -+ _Unwind_Ptr _Unwind_GetIP (struct _Unwind_Context *); -+ _Unwind_Ptr _Unwind_GetIPInfo (struct _Unwind_Context *, int *); -+ void _Unwind_SetIP (struct _Unwind_Context *, _Unwind_Ptr); -+#endif - - #ifdef __cplusplus - } /* extern "C" */ ---- libgcc/config/arm/unwind-arm.c.orig 2017-05-20 23:16:46.089435000 +0200 -+++ libgcc/config/arm/unwind-arm.c 2017-05-20 23:17:17.447479000 +0200 -@@ -509,3 +509,25 @@ - { - return __gnu_unwind_pr_common (state, ucbp, context, 2); - } -+ -+#ifdef __FreeBSD__ -+/* FreeBSD expects these to be functions */ -+inline _Unwind_Ptr -+_Unwind_GetIP (struct _Unwind_Context *context) -+{ -+ return _Unwind_GetGR (context, 15) & ~(_Unwind_Word)1; -+} -+ -+inline _Unwind_Ptr -+_Unwind_GetIPInfo (struct _Unwind_Context *context, int *ip_before_insn) -+{ -+ *ip_before_insn = 0; -+ return _Unwind_GetIP (context); -+} -+ -+inline void -+_Unwind_SetIP (struct _Unwind_Context *context, _Unwind_Ptr val) -+{ -+ _Unwind_SetGR (context, 15, val | (_Unwind_GetGR (context, 15) & 1)); -+} -+#endif diff --git a/lang/gcc6/files/patch-x86-64-fix-m16 b/lang/gcc6/files/patch-x86-64-fix-m16 deleted file mode 100644 index 515c0952a29d..000000000000 --- a/lang/gcc6/files/patch-x86-64-fix-m16 +++ /dev/null @@ -1,25 +0,0 @@ -At the moment the -m16 option only passes the "--32" parameter to the -assembler on glibc OSes, while on other OSes the assembler is called -without any specific flag. This is wrong and causes the assembler to -fail. Fix it by adding support for the -m16 option to x86-64.h. - -2016-07-06 Roger Pau Monné - - * x86-64.h: append --32 to the assembler options when -m16 is used - even on non-glibc OSes. - -This should be backported to all stable branches up to 4.9 (when -m16 was -introduced). - ---- UTC ---- gcc/config/i386/x86-64.h -+++ gcc/config/i386/x86-64.h -@@ -49,7 +49,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - #define WCHAR_TYPE_SIZE 32 - - #undef ASM_SPEC --#define ASM_SPEC "%{m32:--32} %{m64:--64} %{mx32:--x32}" -+#define ASM_SPEC "%{m16|m32:--32} %{m64:--64} %{mx32:--x32}" - - #undef ASM_OUTPUT_ALIGNED_BSS - #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \ diff --git a/lang/gcc6/pkg-plist b/lang/gcc6/pkg-plist index 00324c2613e8..ff626833336a 100644 --- a/lang/gcc6/pkg-plist +++ b/lang/gcc6/pkg-plist @@ -14,6 +14,7 @@ bin/gcc-ar%%SUFFIX%% bin/gcc-nm%%SUFFIX%% bin/gcc-ranlib%%SUFFIX%% bin/gcov%%SUFFIX%% +bin/gcov-dump%%SUFFIX%% bin/gcov-tool%%SUFFIX%% bin/gfortran%%SUFFIX%% @comment info/gcc%%SUFFIX%%/dir @@ -21,6 +22,8 @@ man/man1/cpp%%SUFFIX%%.1.gz man/man1/g++%%SUFFIX%%.1.gz man/man1/gcc%%SUFFIX%%.1.gz man/man1/gcov%%SUFFIX%%.1.gz +man/man1/gcov-dump%%SUFFIX%%.1.gz +man/man1/gcov-tool%%SUFFIX%%.1.gz man/man1/gfortran%%SUFFIX%%.1.gz %%JAVA%%share/gcc-%%GCC_VERSION%%/python/libjava/aotcompile.py %%JAVA%%share/gcc-%%GCC_VERSION%%/python/libjava/classfile.py