aboutsummaryrefslogtreecommitdiffstats
path: root/lang
diff options
context:
space:
mode:
authorgerald <gerald@FreeBSD.org>2017-05-28 07:27:21 +0800
committergerald <gerald@FreeBSD.org>2017-05-28 07:27:21 +0800
commit0db52ccab15accfe71aace678c2f7476b6d91def (patch)
treed646330b3adbc25d86292a5735c1176b46a96994 /lang
parentbc7488d9ccc54a0c5d22a93ef6e827f49f3b947c (diff)
downloadfreebsd-ports-gnome-0db52ccab15accfe71aace678c2f7476b6d91def.tar.gz
freebsd-ports-gnome-0db52ccab15accfe71aace678c2f7476b6d91def.tar.zst
freebsd-ports-gnome-0db52ccab15accfe71aace678c2f7476b6d91def.zip
Essentially replace (or rather reinvent) the lang/gcc port, which more
or less ended up identical to lang/gcc5 now that we differentiate between lang/gccX-devel and lang/gccX ports, by (or as) a meta-port that pulls in the respective lang/gccX port (based on the setting of $GCC_DEFAULT) and defines gcc, g++, and gfortran as symlinks to the respective versioned binaries. This is the end of a long journey establishing this infrastructure which is now similar to the one of the python ports, for example, and makes upgrading the default as well as adjusting the default locally a lot easier. (PORTVERSION remains at 5.4.0 for now to avoid PORTEPOCH, but PORTREVISION gets a bump.) Suggested by: tijl (a while ago)
Diffstat (limited to 'lang')
-rw-r--r--lang/gcc/Makefile174
-rw-r--r--lang/gcc/distinfo3
-rw-r--r--lang/gcc/files/java-patch-hier12
-rw-r--r--lang/gcc/files/patch-aarch64-support191
-rw-r--r--lang/gcc/files/patch-arm-unwind-cxx-support106
-rw-r--r--lang/gcc/files/patch-disable-armvhf-config.gcc18
-rw-r--r--lang/gcc/files/patch-libc++43
-rw-r--r--lang/gcc/files/patch-x86-64-fix-m1625
-rw-r--r--lang/gcc/files/pkg-message.in7
-rw-r--r--lang/gcc/pkg-descr10
-rw-r--r--lang/gcc/pkg-plist81
11 files changed, 14 insertions, 656 deletions
diff --git a/lang/gcc/Makefile b/lang/gcc/Makefile
index 1780935af264..4e4dfc0cab64 100644
--- a/lang/gcc/Makefile
+++ b/lang/gcc/Makefile
@@ -3,176 +3,24 @@
PORTNAME= gcc
PORTVERSION= 5.4.0
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= lang java
-MASTER_SITES= GCC/releases/gcc-${DISTVERSION}
+MASTER_SITES= # not applicable
+DISTFILES= # not applicable
MAINTAINER= gerald@FreeBSD.org
-COMMENT= GNU Compiler Collection 5
+COMMENT= Meta-port for the default version of the GNU Compiler Collection
-LICENSE= GPLv3 GPLv3RLE
-LICENSE_COMB= multi
+RUN_DEPENDS= gcc${DEFAULT}:lang/gcc${GCC_DEFAULT}
-LIB_DEPENDS= libgmp.so:math/gmp \
- libmpfr.so:math/mpfr \
- libmpc.so:math/mpc
-BUILD_DEPENDS+= ${LOCALBASE}/bin/as:devel/binutils
-RUN_DEPENDS+= ${LOCALBASE}/bin/as:devel/binutils
+NO_ARCH= yes
+NO_BUILD= yes
-.if defined(MAINTAINER_MODE)
-BUILD_DEPENDS+= runtest:misc/dejagnu
-.endif
+PLIST_FILES= bin/g++ bin/gcc bin/gfortran
-CONFLICTS= gcc5*
-CPE_VENDOR= gnu
-
-# GCC_VERSION and SUFFIX relate to names of executables and directories
-# once installed.
-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
-USE_BINUTILS= yes
-USE_PERL5= build
-SSP_UNSAFE= yes
-
-OPTIONS_DEFINE= BOOTSTRAP GRAPHITE
-OPTIONS_DEFINE_i386= JAVA
-OPTIONS_DEFINE_amd64= JAVA
-OPTIONS_DEFINE_powerpc64= JAVA
-OPTIONS_DEFAULT_i386= JAVA
-OPTIONS_DEFAULT_amd64= JAVA
-OPTIONS_DEFAULT_powerpc64= BOOTSTRAP
-OPTIONS_EXCLUDE_DragonFly= JAVA
-BOOTSTRAP_DESC= Build using a full bootstrap
-GRAPHITE_DESC= Support for Graphite loop optimizations
-
-JAVA_USES= python:build shebangfix
-SHEBANG_FILES= libjava/contrib/aot-compile.in
-
-.if exists(/usr/lib32/libc.so)
-OPTIONS_DEFINE_powerpc64+= MULTILIB
-OPTIONS_DEFAULT_powerpc64+= MULTILIB
-MULTILIB_DESC= Build support for 32-bit and 64-bit targets
-MULTILIB_CONFIGURE_ENABLE= multilib
-.else
-CONFIGURE_ARGS+= --disable-multilib
-.endif
-
-.include <bsd.port.pre.mk>
-
-.if ${ARCH} == "amd64"
-CONFIGURE_TARGET= x86_64-portbld-${OPSYS:tl}${OSREL}
-.endif
-
-.if ${ARCH} == powerpc64
-CONFIGURE_ENV+= UNAME_m="powerpc64"
-.endif
-
-.if ${ARCH} == "armv6" || ${ARCH} == "aarch64"
-. if ${COMPILER_TYPE} == clang
-. if empty(PORT_OPTIONS:MBOOTSTRAP)
-MAKE_ARGS+=CXXFLAGS=-fbracket-depth=512
-. else
-MAKE_ARGS+=STAGE1_CXXFLAGS=-fbracket-depth=512
-. endif
-. endif
-.endif
-
-LANGUAGES:= c,c++,objc,fortran
-TARGLIB= ${PREFIX}/lib/gcc${SUFFIX}
-LIBEXEC= ${PREFIX}/libexec/gcc${SUFFIX}
-GNU_CONFIGURE= yes
-CONFIGURE_OUTSOURCE= yes
-.if empty(PORT_OPTIONS:MBOOTSTRAP)
-CONFIGURE_ARGS+=--disable-bootstrap
-.else
-CONFIGURE_ARGS+=--with-build-config=bootstrap-debug
-ALL_TARGET= bootstrap-lean
-.endif
-CONFIGURE_ARGS+=--disable-nls \
- --enable-gnu-indirect-function \
- --libdir=${TARGLIB} \
- --libexecdir=${LIBEXEC} \
- --program-suffix=${SUFFIX} \
- --with-as=${LOCALBASE}/bin/as \
- --with-gmp=${LOCALBASE} \
- --with-gxx-include-dir=${TARGLIB}/include/c++/ \
- --with-ld=${LOCALBASE}/bin/ld \
- ${ICONV_CONFIGURE_ARG} \
- --with-pkgversion="FreeBSD Ports Collection" \
- --with-system-zlib
-MAKE_ARGS+= MAKEINFOFLAGS="--no-split"
-USE_LDCONFIG= ${TARGLIB}
-PLIST_SUB= GCC_VERSION=${GCC_VERSION} \
- GNU_HOST=${CONFIGURE_TARGET} \
- SUFFIX=${SUFFIX}
-INFO= gcc${SUFFIX}/cpp \
- gcc${SUFFIX}/cppinternals \
- gcc${SUFFIX}/gcc \
- gcc${SUFFIX}/gccinstall \
- gcc${SUFFIX}/gccint \
- gcc${SUFFIX}/gfortran \
- gcc${SUFFIX}/libgomp
-# Release tarballs (as opposed to snapshots) always carry this.
-#.if ${ARCH} == "i386" || ${ARCH} == "amd64"
-INFO+= gcc${SUFFIX}/libquadmath \
- gcc${SUFFIX}/libitm
-#.endif
-SUB_FILES= pkg-message
-SUB_LIST+= TARGLIB=${TARGLIB}
-
-.if ${PORT_OPTIONS:MGRAPHITE}
-LIB_DEPENDS+= libisl.so:devel/isl
-CONFIGURE_ARGS+=--with-isl=${LOCALBASE}
-.endif
-
-.if ${PORT_OPTIONS:MJAVA}
-ECJ_JAR= ${LOCALBASE}/share/java/ecj-4.5.jar
-BUILD_DEPENDS+= ${ECJ_JAR}:lang/gcc-ecj45 \
- zip:archivers/zip
-RUN_DEPENDS+= ${ECJ_JAR}:lang/gcc-ecj45
-EXTRA_PATCHES+= ${FILESDIR}/java-patch-hier
-CONFIGURE_ARGS+=--with-ecj-jar=${ECJ_JAR}
-LANGUAGES:= ${LANGUAGES},java
-INFO+= gcc${SUFFIX}/cp-tools \
- gcc${SUFFIX}/gcj
-PLIST_SUB+= JAVA=""
-.else
-CONFIGURE_ARGS+=--disable-libgcj
-PLIST_SUB+= JAVA="@comment "
-.endif
-CONFIGURE_ARGS+=--enable-languages=${LANGUAGES}
-
-pre-everything::
- @${ECHO_MSG} "Making GCC ${PORTVERSION} for ${CONFIGURE_TARGET} [${LANGUAGES}]"
-
-pre-configure:
- cd ${WRKSRC} ; contrib/gcc_update --touch
- @${RM} ${WRKSRC}/gcc/*/*.info*
-
-.if defined(MAINTAINER_MODE)
-full-regression-test: build
- cd ${TEST_WRKSRC}; ${MAKE_CMD} -sk check \
- ; ${WRKSRC}/contrib/test_summary
-.endif
-
-post-stage:
- ${RM} ${STAGEDIR}${PREFIX}/man/man7/*
- ${RM} ${STAGEDIR}${PREFIX}/bin/rebuild-gcj-db${SUFFIX} \
- ${STAGEDIR}${PREFIX}/man/man1/rebuild-gcj-db${SUFFIX}.1
- # 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
- cd ${STAGEDIR}${PREFIX} ; if [ -d $d ]; then \
- ${FIND} $d -type f -o -type l >>${WRKDIR}/PLIST.lib ;\
- fi
-.endfor
- cd ${WRKDIR} ; ${SED} -i -e "/PLIST.lib/ r PLIST.lib" ${TMPPLIST}
- # This is the canonical GCC port, so add key commands without
- # version numbers as part of their names.
+do-install:
.for c in gfortran g++ gcc
- ${LN} -s ${c}${SUFFIX} ${STAGEDIR}${PREFIX}/bin/${c}
+ ${LN} -s ${c}${GCC_DEFAULT} ${STAGEDIR}${PREFIX}/bin/${c}
.endfor
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff --git a/lang/gcc/distinfo b/lang/gcc/distinfo
deleted file mode 100644
index 12940e9fa154..000000000000
--- a/lang/gcc/distinfo
+++ /dev/null
@@ -1,3 +0,0 @@
-TIMESTAMP = 1490558722
-SHA256 (gcc-5.4.0.tar.bz2) = 608df76dec2d34de6558249d8af4cbee21eceddbcb580d666f7a5a583ca3303a
-SIZE (gcc-5.4.0.tar.bz2) = 95661481
diff --git a/lang/gcc/files/java-patch-hier b/lang/gcc/files/java-patch-hier
deleted file mode 100644
index e34a86988e56..000000000000
--- a/lang/gcc/files/java-patch-hier
+++ /dev/null
@@ -1,12 +0,0 @@
---- UTC
---- libjava/Makefile.in 2013-05-26 22:33:07.000000000 +0000
-+++ libjava/Makefile.in 2013-05-31 21:19:23.000000000 +0000
-@@ -941,7 +941,7 @@
- @BUILD_SUBLIBS_FALSE@LIBJAVA_CORE_EXTRA =
- @BUILD_SUBLIBS_TRUE@LIBJAVA_CORE_EXTRA = @LIBGCJ_SUBLIB_CORE_EXTRA_DEPS@
- dbexec_LTLIBRARIES = libjvm.la
--pkgconfigdir = $(toolexeclibdir)/pkgconfig
-+pkgconfigdir = $(prefix)/libdata/pkgconfig
- jardir = $(datadir)/java
- jar_DATA = libgcj-$(gcc_version).jar libgcj-tools-$(gcc_version).jar \
- $(am__append_5)
diff --git a/lang/gcc/files/patch-aarch64-support b/lang/gcc/files/patch-aarch64-support
deleted file mode 100644
index 976848aca11b..000000000000
--- a/lang/gcc/files/patch-aarch64-support
+++ /dev/null
@@ -1,191 +0,0 @@
---- UTC
-Index: configure
-===================================================================
---- configure (revision 240731)
-+++ configure (working copy)
-@@ -3455,6 +3455,9 @@
- *-*-vxworks*)
- noconfigdirs="$noconfigdirs ${libgcj}"
- ;;
-+ aarch64*-*-freebsd*)
-+ noconfigdirs="$noconfigdirs ${libgcj}"
-+ ;;
- alpha*-*-*vms*)
- noconfigdirs="$noconfigdirs ${libgcj}"
- ;;
-Index: configure.ac
-===================================================================
---- configure.ac (revision 240731)
-+++ configure.ac (working copy)
-@@ -802,6 +802,9 @@
- *-*-vxworks*)
- noconfigdirs="$noconfigdirs ${libgcj}"
- ;;
-+ aarch64*-*-freebsd*)
-+ noconfigdirs="$noconfigdirs ${libgcj}"
-+ ;;
- alpha*-*-*vms*)
- noconfigdirs="$noconfigdirs ${libgcj}"
- ;;
-Index: gcc/config/aarch64/aarch64-freebsd.h
-===================================================================
---- gcc/config/aarch64/aarch64-freebsd.h (nonexistent)
-+++ gcc/config/aarch64/aarch64-freebsd.h (working copy)
-@@ -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/config/aarch64/t-aarch64-freebsd
-===================================================================
---- gcc/config/aarch64/t-aarch64-freebsd (nonexistent)
-+++ gcc/config/aarch64/t-aarch64-freebsd (working copy)
-@@ -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
-Index: gcc/config.gcc
-===================================================================
---- gcc/config.gcc (revision 240731)
-+++ gcc/config.gcc (working copy)
-@@ -914,6 +914,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"
-Index: libgcc/config.host
-===================================================================
---- libgcc/config.host (revision 240731)
-+++ libgcc/config.host (working copy)
-@@ -328,6 +328,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
diff --git a/lang/gcc/files/patch-arm-unwind-cxx-support b/lang/gcc/files/patch-arm-unwind-cxx-support
deleted file mode 100644
index ec6959b9655c..000000000000
--- a/lang/gcc/files/patch-arm-unwind-cxx-support
+++ /dev/null
@@ -1,106 +0,0 @@
---- UTC
-Index: gcc/ginclude/unwind-arm-common.h
-===================================================================
---- gcc/ginclude/unwind-arm-common.h (revision 219113)
-+++ gcc/ginclude/unwind-arm-common.h (working copy)
-@@ -82,7 +82,11 @@
-
- struct _Unwind_Control_Block
- {
-+#ifdef __FreeBSD__
-+ unsigned exception_class __attribute__((__mode__(__DI__)));
-+#else
- char exception_class[8];
-+#endif
- void (*exception_cleanup)(_Unwind_Reason_Code, _Unwind_Control_Block *);
- /* Unwinder cache, private fields for the unwinder's use */
- struct
-@@ -181,7 +185,11 @@
-
- /* Support functions for the PR. */
- #define _Unwind_Exception _Unwind_Control_Block
-+#ifdef __FreeBSD__
-+ typedef unsigned _Unwind_Exception_Class __attribute__((__mode__(__DI__)));
-+#else
- typedef char _Unwind_Exception_Class[8];
-+#endif
-
- void * _Unwind_GetLanguageSpecificData (_Unwind_Context *);
- _Unwind_Ptr _Unwind_GetRegionStart (_Unwind_Context *);
-Index: libstdc++-v3/libsupc++/unwind-cxx.h
-===================================================================
---- libstdc++-v3/libsupc++/unwind-cxx.h (revision 219147)
-+++ libstdc++-v3/libsupc++/unwind-cxx.h (working copy)
-@@ -235,7 +235,7 @@
- return reinterpret_cast<__cxa_dependent_exception *>(exc + 1) - 1;
- }
-
--#ifdef __ARM_EABI_UNWINDER__
-+#if defined(__ARM_EABI_UNWINDER__) && !defined(__FreeBSD__)
- static inline bool
- __is_gxx_exception_class(_Unwind_Exception_Class c)
- {
-@@ -309,13 +309,7 @@
- c[6] = 'R';
- c[7] = '\0';
- }
--
--static inline void*
--__gxx_caught_object(_Unwind_Exception* eo)
--{
-- return (void*)eo->barrier_cache.bitpattern[0];
--}
--#else // !__ARM_EABI_UNWINDER__
-+#else // !__ARM_EABI_UNWINDER__ || __FreeBSD__
- // This is the primary exception class we report -- "GNUCC++\0".
- const _Unwind_Exception_Class __gxx_primary_exception_class
- = ((((((((_Unwind_Exception_Class) 'G'
-@@ -339,6 +333,16 @@
- << 8 | (_Unwind_Exception_Class) '+')
- << 8 | (_Unwind_Exception_Class) '\x01');
-
-+const _Unwind_Exception_Class __gxx_forced_unwind_class
-+= ((((((((_Unwind_Exception_Class) 'G'
-+ << 8 | (_Unwind_Exception_Class) 'N')
-+ << 8 | (_Unwind_Exception_Class) 'U')
-+ << 8 | (_Unwind_Exception_Class) 'C')
-+ << 8 | (_Unwind_Exception_Class) 'F')
-+ << 8 | (_Unwind_Exception_Class) 'O')
-+ << 8 | (_Unwind_Exception_Class) 'R')
-+ << 8 | (_Unwind_Exception_Class) '\0');
-+
- static inline bool
- __is_gxx_exception_class(_Unwind_Exception_Class c)
- {
-@@ -346,6 +350,12 @@
- || c == __gxx_dependent_exception_class;
- }
-
-+static inline bool
-+__is_gxx_forced_unwind_class(_Unwind_Exception_Class c)
-+{
-+ return c == __gxx_forced_unwind_class;
-+}
-+
- // Only checks for primary or dependent, but not that it is a C++ exception at
- // all.
- static inline bool
-@@ -357,7 +367,18 @@
- #define __GXX_INIT_PRIMARY_EXCEPTION_CLASS(c) c = __gxx_primary_exception_class
- #define __GXX_INIT_DEPENDENT_EXCEPTION_CLASS(c) \
- c = __gxx_dependent_exception_class
-+#define __GXX_INIT_FORCED_UNWIND_CLASS(c) c = __gxx_forced_unwind_class
-+#endif // __ARM_EABI_UNWINDER__ && !__FreeBSD__
-
-+#ifdef __ARM_EABI_UNWINDER__
-+static inline void*
-+__gxx_caught_object(_Unwind_Exception* eo)
-+{
-+ return (void*)eo->barrier_cache.bitpattern[0];
-+}
-+
-+#else // !__ARM_EABI_UNWINDER__
-+
- // GNU C++ personality routine, Version 0.
- extern "C" _Unwind_Reason_Code __gxx_personality_v0
- (int, _Unwind_Action, _Unwind_Exception_Class,
diff --git a/lang/gcc/files/patch-disable-armvhf-config.gcc b/lang/gcc/files/patch-disable-armvhf-config.gcc
deleted file mode 100644
index 7d9e4bb70524..000000000000
--- a/lang/gcc/files/patch-disable-armvhf-config.gcc
+++ /dev/null
@@ -1,18 +0,0 @@
---- UTC
---- gcc/config.gcc.orig 2017-04-03 17:14:32.217141000 +0200
-+++ gcc/config.gcc 2017-04-03 17:15:05.626375000 +0200
-@@ -1026,11 +1026,9 @@
- case $target in
- armv6*-*-freebsd*)
- tm_defines="${tm_defines} TARGET_FREEBSD_ARMv6=1"
-- ;;
-- esac
-- case $target in
-- arm*hf-*-freebsd*)
-- tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
-+ if test $fbsd_major -ge 11; then
-+ tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
-+ fi
- ;;
- esac
- with_tls=${with_tls:-gnu}
diff --git a/lang/gcc/files/patch-libc++ b/lang/gcc/files/patch-libc++
deleted file mode 100644
index 9550b11f7c29..000000000000
--- a/lang/gcc/files/patch-libc++
+++ /dev/null
@@ -1,43 +0,0 @@
---- gcc/auto-profile.c.orig 2015-01-18 02:25:42 UTC
-+++ gcc/auto-profile.c
-@@ -19,11 +19,9 @@ along with GCC; see the file COPYING3.
- <http://www.gnu.org/licenses/>. */
-
- #include "config.h"
--#include "system.h"
--
--#include <string.h>
- #include <map>
- #include <set>
-+#include "system.h"
-
- #include "coretypes.h"
- #include "hash-set.h"
---- gcc/graphite-isl-ast-to-gimple.c.orig 2017-01-19 21:02:12 UTC
-+++ gcc/graphite-isl-ast-to-gimple.c
-@@ -38,6 +38,7 @@ extern "C" {
- #endif
- #endif
-
-+#include <map>
- #include "system.h"
- #include "coretypes.h"
- #include "hash-set.h"
-@@ -75,7 +76,6 @@ extern "C" {
- #include "tree-scalar-evolution.h"
- #include "gimple-ssa.h"
- #include "tree-into-ssa.h"
--#include <map>
-
- #ifdef HAVE_isl
- #include "graphite-poly.h"
---- gcc/system.h.orig 2015-01-05 12:33:28 UTC
-+++ gcc/system.h
-@@ -217,6 +217,7 @@ extern int errno;
- #ifdef __cplusplus
- # include <algorithm>
- # include <cstring>
-+# include <new>
- # include <utility>
- #endif
-
diff --git a/lang/gcc/files/patch-x86-64-fix-m16 b/lang/gcc/files/patch-x86-64-fix-m16
deleted file mode 100644
index 515c0952a29d..000000000000
--- a/lang/gcc/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é <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) \
diff --git a/lang/gcc/files/pkg-message.in b/lang/gcc/files/pkg-message.in
deleted file mode 100644
index 433c37a3f89b..000000000000
--- a/lang/gcc/files/pkg-message.in
+++ /dev/null
@@ -1,7 +0,0 @@
-To ensure binaries built with this toolchain find appropriate versions
-of the necessary run-time libraries, you may want to link using
-
- -Wl,-rpath=%%TARGLIB%%
-
-For ports leveraging USE_GCC, USES=compiler, or USES=fortran this happens
-transparently.
diff --git a/lang/gcc/pkg-descr b/lang/gcc/pkg-descr
index fa6e0988a852..e28f618bdd1a 100644
--- a/lang/gcc/pkg-descr
+++ b/lang/gcc/pkg-descr
@@ -1,11 +1,7 @@
GCC, the GNU Compiler Collection, supports a number of languages. This
-port installs the C, C++, Fortran and Java front ends as gcc5, g++5,
-gfortran5, and gcj5, respectively.
+port pulls in gcc5 (or another version-specific port) and defines symlinks
+called gcc, g++, and gfortran.
-It can be used (largely) interchangibly with the lang/gcc5 port, which
-tracks GCC 5 releases, or the lang/gcc5-devel port, which tracks GCC 5
-snapshots, and will move to GCC 6 and later over time.
-
-WWW: http://gcc.gnu.org/
+WWW: http://gcc.gnu.org
Gerald Pfeifer <gerald@FreeBSD.org>
diff --git a/lang/gcc/pkg-plist b/lang/gcc/pkg-plist
deleted file mode 100644
index 6d28e22a1961..000000000000
--- a/lang/gcc/pkg-plist
+++ /dev/null
@@ -1,81 +0,0 @@
-bin/%%GNU_HOST%%-c++%%SUFFIX%%
-bin/%%GNU_HOST%%-g++%%SUFFIX%%
-bin/%%GNU_HOST%%-gcc%%SUFFIX%%
-bin/%%GNU_HOST%%-gcc-%%GCC_VERSION%%
-bin/%%GNU_HOST%%-gcc-ar%%SUFFIX%%
-bin/%%GNU_HOST%%-gcc-nm%%SUFFIX%%
-bin/%%GNU_HOST%%-gcc-ranlib%%SUFFIX%%
-bin/%%GNU_HOST%%-gfortran%%SUFFIX%%
-bin/c++%%SUFFIX%%
-bin/cpp%%SUFFIX%%
-bin/g++
-bin/g++%%SUFFIX%%
-bin/gcc
-bin/gcc%%SUFFIX%%
-bin/gcc-ar%%SUFFIX%%
-bin/gcc-nm%%SUFFIX%%
-bin/gcc-ranlib%%SUFFIX%%
-bin/gcov%%SUFFIX%%
-bin/gcov-tool%%SUFFIX%%
-bin/gfortran
-bin/gfortran%%SUFFIX%%
-@comment info/gcc%%SUFFIX%%/dir
-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/gfortran%%SUFFIX%%.1.gz
-%%JAVA%%share/gcc-%%GCC_VERSION%%/python/libjava/aotcompile.py
-%%JAVA%%share/gcc-%%GCC_VERSION%%/python/libjava/classfile.py
-share/gcc-%%GCC_VERSION%%/python/libstdcxx/__init__.py
-share/gcc-%%GCC_VERSION%%/python/libstdcxx/v6/__init__.py
-share/gcc-%%GCC_VERSION%%/python/libstdcxx/v6/printers.py
-share/gcc-%%GCC_VERSION%%/python/libstdcxx/v6/xmethods.py
-%%JAVA%%bin/%%GNU_HOST%%-gcj%%SUFFIX%%
-%%JAVA%%bin/aot-compile%%SUFFIX%%
-%%JAVA%%bin/gappletviewer%%SUFFIX%%
-%%JAVA%%bin/gc-analyze%%SUFFIX%%
-%%JAVA%%bin/gcj%%SUFFIX%%
-%%JAVA%%bin/gcj-dbtool%%SUFFIX%%
-%%JAVA%%bin/gcjh%%SUFFIX%%
-%%JAVA%%bin/gij%%SUFFIX%%
-%%JAVA%%bin/gjar%%SUFFIX%%
-%%JAVA%%bin/gjarsigner%%SUFFIX%%
-%%JAVA%%bin/gjavah%%SUFFIX%%
-%%JAVA%%bin/gkeytool%%SUFFIX%%
-%%JAVA%%bin/gnative2ascii%%SUFFIX%%
-%%JAVA%%bin/gorbd%%SUFFIX%%
-%%JAVA%%bin/grmic%%SUFFIX%%
-%%JAVA%%bin/grmid%%SUFFIX%%
-%%JAVA%%bin/grmiregistry%%SUFFIX%%
-%%JAVA%%bin/gserialver%%SUFFIX%%
-%%JAVA%%bin/gtnameserv%%SUFFIX%%
-%%JAVA%%bin/jcf-dump%%SUFFIX%%
-%%JAVA%%bin/jv-convert%%SUFFIX%%
-%%JAVA%%libdata/pkgconfig/libgcj-5.pc
-%%JAVA%%man/man1/aot-compile%%SUFFIX%%.1.gz
-%%JAVA%%man/man1/gappletviewer%%SUFFIX%%.1.gz
-%%JAVA%%man/man1/gc-analyze%%SUFFIX%%.1.gz
-%%JAVA%%man/man1/gcj%%SUFFIX%%.1.gz
-%%JAVA%%man/man1/gcj-dbtool%%SUFFIX%%.1.gz
-%%JAVA%%man/man1/gcjh%%SUFFIX%%.1.gz
-%%JAVA%%man/man1/gij%%SUFFIX%%.1.gz
-%%JAVA%%man/man1/gjar%%SUFFIX%%.1.gz
-%%JAVA%%man/man1/gjarsigner%%SUFFIX%%.1.gz
-%%JAVA%%man/man1/gjavah%%SUFFIX%%.1.gz
-%%JAVA%%man/man1/gjdoc%%SUFFIX%%.1.gz
-%%JAVA%%man/man1/gkeytool%%SUFFIX%%.1.gz
-%%JAVA%%man/man1/gnative2ascii%%SUFFIX%%.1.gz
-%%JAVA%%man/man1/gorbd%%SUFFIX%%.1.gz
-%%JAVA%%man/man1/grmic%%SUFFIX%%.1.gz
-%%JAVA%%man/man1/grmid%%SUFFIX%%.1.gz
-%%JAVA%%man/man1/grmiregistry%%SUFFIX%%.1.gz
-%%JAVA%%man/man1/gserialver%%SUFFIX%%.1.gz
-%%JAVA%%man/man1/gtnameserv%%SUFFIX%%.1.gz
-%%JAVA%%man/man1/jcf-dump%%SUFFIX%%.1.gz
-%%JAVA%%man/man1/jv-convert%%SUFFIX%%.1.gz
-%%JAVA%%share/java/libgcj-%%GCC_VERSION%%.jar
-%%JAVA%%share/java/libgcj-tools-%%GCC_VERSION%%.jar
-@postexec if type ccache-update-links >/dev/null 2>&1; then ccache-update-links -v; fi
-@postunexec if type ccache-update-links >/dev/null 2>&1; then ccache-update-links -v; fi
-@comment Insert PLIST.lib here