diff options
author | gerald <gerald@FreeBSD.org> | 2017-05-28 07:27:21 +0800 |
---|---|---|
committer | gerald <gerald@FreeBSD.org> | 2017-05-28 07:27:21 +0800 |
commit | 0db52ccab15accfe71aace678c2f7476b6d91def (patch) | |
tree | d646330b3adbc25d86292a5735c1176b46a96994 /lang | |
parent | bc7488d9ccc54a0c5d22a93ef6e827f49f3b947c (diff) | |
download | freebsd-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/Makefile | 174 | ||||
-rw-r--r-- | lang/gcc/distinfo | 3 | ||||
-rw-r--r-- | lang/gcc/files/java-patch-hier | 12 | ||||
-rw-r--r-- | lang/gcc/files/patch-aarch64-support | 191 | ||||
-rw-r--r-- | lang/gcc/files/patch-arm-unwind-cxx-support | 106 | ||||
-rw-r--r-- | lang/gcc/files/patch-disable-armvhf-config.gcc | 18 | ||||
-rw-r--r-- | lang/gcc/files/patch-libc++ | 43 | ||||
-rw-r--r-- | lang/gcc/files/patch-x86-64-fix-m16 | 25 | ||||
-rw-r--r-- | lang/gcc/files/pkg-message.in | 7 | ||||
-rw-r--r-- | lang/gcc/pkg-descr | 10 | ||||
-rw-r--r-- | lang/gcc/pkg-plist | 81 |
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 |