mirror of
https://git.FreeBSD.org/ports.git
synced 2025-01-05 06:27:37 +00:00
Update to the GCC 6.4.0 upstream release which carries a number of fixes.
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.
This commit is contained in:
parent
6599403893
commit
5b0478c11f
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=445313
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
+# <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+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
|
||||
+ <http://www.gnu.org/licenses/>. */
|
||||
+
|
||||
+#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;
|
@ -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
|
@ -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é <roger.pau@citrix.com>
|
||||
|
||||
* 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) \
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user