Welcome GCC 9.1, the first release of the GCC 9 series!

https://gcc.gnu.org/gcc-9/changes.html has a comprehensive overview of
many improvements and changes and https://gcc.gnu.org/gcc-8/porting_to.html
addresses issues you may encounter porting to this new version, though
this release series should have fewer of those than previous ones.

To provide a brief overview of some of the more noticable changes:

GCC's diagnostics now print source code with a left margin showing line
numbers.  This is configurable via -fno-diagnostics-show-line-numbers.
Plus there have been lots of further improvements around diagnostic
messages in general as -fopt-info.

As usual a large number of improvements to code generation, including
but by far not limited to the following:
 - Switch expansion (into expressions).
 - Inliner defaults are tuned to better suit modern C++ codebases,
   especially when built with link time optimizations.
 - Hot/cold partitioning is now more precise and aggressive.
 - Improved scalability for very large translation units.
 - Link-time optimization improvements including faster compilation.

A new option -flive-patching=[inline-only-static|inline-clone] has
been introduced to provide a safe compilation for live-patching.

A new pair of profiling options -fprofile-filter-files and
-fprofile-exclude-files help filter which source files are instrumented.

New built-in functions __builtin_expect_with_probability,
__builtin_has_attribute, and __builtin_speculation_safe_value.

Significant effort has been put into refining existing compiler warnings
and adding additional diagnostics. One notable addition is -Wabsolute-value
which warns for calls to standard functions that compute the absolute value
of an argument when a more appropriate standard function is available. For
example, calling abs(3.14) warns because the appropriate function to
compute the absolute value of a double argument is fabs.

The spelling corrector now considers transposed letters, and the threshold
for similarity has been tightened, to avoid nonsensical suggestions.

A new option --completion provides better option completion in a shell
(such as bash).

OpenACC support in C, C++, and Fortran continues to be maintained and
improved. Most of the OpenACC 2.5 specification is implemented.

Version 5.0 of the OpenMP specification is now partially supported in
the C and C++ compilers.

There is now experimental support for the upcoming C2X revision of the
ISO C standard (via the -std=c2x and similar options).

The C++ front end has experimental support for some of the upcoming
C++2a draft features, enabled by the -std=c++2a or -std=gnu++2a options.
This includes range-based for statements with initializer, default
constructible and assignable stateless lambdas, lambdas in unevaluated
contexts, language support for empty data members, allowing pack expansion
in lambda init-capture, likely and unlikely attributes, class types in
non-type template parameters, allowing virtual function calls in constant
expressions, explicit(bool), std::is_constant_evaluated, nested inline
namespaces, etc.

The C++17 implementation is no longer experimental and parallel algorithms
and <execution> and <memory_resource> are available.  Using the types and
functions in <filesystem> does not require linking with -lstdc++fs any more.

On the Fortran side asynchronous I/O is now fully supported; FINDLOC and
IS_CONTIGUOUS and other intrinsics have been implemented.

The MAX and MIN intrinsics are no longer guaranteed to return any
particular value in case one of the arguments is a NaN. This conforms
with the Fortran standard and what other Fortran compilers do.

A new option -fdec-include, set also by -fdec, has been added for
compatibility with legacy code.  With this option, the INCLUDE directive
is parsed also as a statement, which allows it to be written on multiple
source lines with line continuations.

Support for the Cell Broadband Engine (SPU), and thus powerpcspe on
FreeBSD as well, has been removed for lack of upstream maintainership.

Also there's been a minor ABI change on arm* targets (that GCC warns
about by default, controlled by the -Wpsabi option).

Support for the D programming language has been added to GCC, implementing
version 2.076 of the language and run-time library, though this port does
not enable this yet.  Volunteers welcome to test and contribute.
This commit is contained in:
Gerald Pfeifer
2019-06-01 18:06:12 +00:00
parent 2f498d42d2
commit 0032df7f14
10 changed files with 498 additions and 0 deletions
+1
View File
@@ -110,6 +110,7 @@
SUBDIR += gcc7-devel
SUBDIR += gcc8
SUBDIR += gcc8-devel
SUBDIR += gcc9
SUBDIR += gcc9-devel
SUBDIR += gforth
SUBDIR += ghc
+151
View File
@@ -0,0 +1,151 @@
# Created by: Gerald Pfeifer <gerald@FreeBSD.org>
# $FreeBSD$
PORTNAME= gcc
PORTVERSION= 9.1.0
CATEGORIES= lang
MASTER_SITES= GCC
PKGNAMESUFFIX= ${SUFFIX}
MAINTAINER= gerald@FreeBSD.org
COMMENT= GNU Compiler Collection 9
LICENSE= GPLv3 GPLv3RLE
LICENSE_COMB= multi
ONLY_FOR_ARCHS= aarch64 amd64 arm armv6 armv7 i386 powerpc powerpc64 sparc64
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
.if defined(MAINTAINER_MODE)
BUILD_DEPENDS+= runtest:misc/dejagnu
.endif
USES= compiler cpe gmake iconv libtool makeinfo perl5 tar:xz
USE_BINUTILS= yes
USE_PERL5= build
CONFLICTS= gcc9-devel-9.*
CPE_VENDOR= gnu
GCC_VERSION= ${PORTVERSION}
SUFFIX= ${PORTVERSION:C/([0-9]+).*/\1/}
SSP_UNSAFE= yes
CFLAGS:= ${CFLAGS:N-mretpoline}
CXXFLAGS:= ${CXXFLAGS:N-mretpoline}
OPTIONS_DEFINE= BOOTSTRAP GRAPHITE
OPTIONS_DEFAULT= BOOTSTRAP
BOOTSTRAP_DESC= Build using a full bootstrap
GRAPHITE_DESC= Support for Graphite loop optimizations
.if exists(/usr/lib32/libc.so)
OPTIONS_DEFINE_amd64+= MULTILIB
OPTIONS_DEFAULT_amd64+= MULTILIB
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}
.elif ${ARCH} == powerpc64
CONFIGURE_ENV+= UNAME_m="powerpc64"
USE_GCC= yes
.endif
LANGUAGES:= c,c++,objc,fortran
TARGLIB= ${PREFIX}/lib/gcc${SUFFIX}
TARGLIB32= ${PREFIX}/lib32 # The version information is added later
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
INSTALL_TARGET= install-strip
.if ${UID} != 0
BINMODE= 755
.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.
INFO+= gcc${SUFFIX}/libquadmath \
gcc${SUFFIX}/libitm
SUB_FILES= pkg-message
SUB_LIST+= TARGLIB=${TARGLIB}
.if ${PORT_OPTIONS:MGRAPHITE}
LIB_DEPENDS+= libisl.so:devel/isl
CONFIGURE_ARGS+=--with-isl=${LOCALBASE}
.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} -r ${STAGEDIR}${TARGLIB}/gcc/*/${GCC_VERSION}/include-fixed/
# Add target libraries and include files to packaging list.
${RM} ${WRKDIR}/PLIST.lib
.if (${ARCH} == amd64 || ${ARCH} == powerpc64) && ${PORT_OPTIONS:MMULTILIB}
${MKDIR} ${STAGEDIR}${TARGLIB32}
${MV} ${STAGEDIR}${PREFIX}/lib/lib32 ${STAGEDIR}${TARGLIB32}/gcc${SUFFIX}
.endif
.for d in ${TARGLIB:S/^${PREFIX}\///} ${TARGLIB32:S/^${PREFIX}\///} ${LIBEXEC:S/^${PREFIX}\///}
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}
.include <bsd.port.post.mk>
+3
View File
@@ -0,0 +1,3 @@
TIMESTAMP = 1557690023
SHA256 (gcc-9.1.0.tar.xz) = 79a66834e96a6050d8fe78db2c3b32fb285b230b855d0a66288235bc04b327a0
SIZE (gcc-9.1.0.tar.xz) = 70546856
@@ -0,0 +1,73 @@
--- UTC
Index: gcc/config.gcc
===================================================================
--- gcc/config.gcc (revision 269726)
+++ gcc/config.gcc (working copy)
@@ -4925,8 +4925,11 @@
;;
i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
;;
- i[34567]86-*-freebsd* | x86_64-*-freebsd*)
+ i[34567]86-*-freebsd*)
;;
+ x86_64-*-freebsd*)
+ tmake_file="${tmake_file} i386/t-freebsd64"
+ ;;
ia64*-*-linux*)
;;
Index: gcc/config/i386/freebsd64.h
===================================================================
--- gcc/config/i386/freebsd64.h (revision 269733)
+++ gcc/config/i386/freebsd64.h (working copy)
@@ -31,7 +31,7 @@
#undef LINK_SPEC
#define LINK_SPEC "\
- %{m32:-m elf_i386_fbsd} \
+ %{m32:-m elf_i386_fbsd}%{!m32:-m elf_x86_64_fbsd} \
%{p:%nconsider using '-pg' instead of '-p' with gprof(1)} \
%{v:-V} \
%{assert*} %{R*} %{rpath*} %{defsym*} \
@@ -42,3 +42,6 @@
-dynamic-linker %(fbsd_dynamic_linker) } \
%{static:-Bstatic}} \
%{symbolic:-Bsymbolic}"
+
+#undef MULTILIB_DEFAULTS
+#define MULTILIB_DEFAULTS { "m64" }
Index: gcc/config/i386/t-freebsd64
===================================================================
--- gcc/config/i386/t-freebsd64 (nonexistent)
+++ gcc/config/i386/t-freebsd64 (working copy)
@@ -0,0 +1,30 @@
+# Copyright (C) 2019 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/>.
+
+# The 32-bit libraries are found in /usr/lib32
+
+# To support i386 and x86-64, the directory structrue
+# should be:
+#
+# /lib has x86-64 libraries.
+# /lib32 has i386 libraries.
+#
+
+MULTILIB_OPTIONS = m32
+MULTILIB_DIRNAMES = 32
+MULTILIB_OSDIRNAMES = ../lib32
@@ -0,0 +1,106 @@
--- 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,
+47
View File
@@ -0,0 +1,47 @@
Disable the build/use of libssp/gets-chk since FreeBSD 12 and later
do not feature gets() any longer.
--- UTC
Index: libssp/Makefile.am
===================================================================
--- libssp/Makefile.am (revision 263319)
+++ libssp/Makefile.am (working copy)
@@ -42,7 +42,7 @@
nobase_libsubinclude_HEADERS = ssp/ssp.h ssp/string.h ssp/stdio.h ssp/unistd.h
libssp_la_SOURCES = \
- ssp.c gets-chk.c memcpy-chk.c memmove-chk.c mempcpy-chk.c \
+ ssp.c memcpy-chk.c memmove-chk.c mempcpy-chk.c \
memset-chk.c snprintf-chk.c sprintf-chk.c stpcpy-chk.c \
strcat-chk.c strcpy-chk.c strncat-chk.c strncpy-chk.c \
vsnprintf-chk.c vsprintf-chk.c
Index: libssp/Makefile.in
===================================================================
--- libssp/Makefile.in (revision 263319)
+++ libssp/Makefile.in (working copy)
@@ -108,7 +108,7 @@
am__installdirs = "$(DESTDIR)$(toolexeclibdir)" \
"$(DESTDIR)$(libsubincludedir)"
LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
-am_libssp_la_OBJECTS = ssp.lo gets-chk.lo memcpy-chk.lo memmove-chk.lo \
+am_libssp_la_OBJECTS = ssp.lo memcpy-chk.lo memmove-chk.lo \
mempcpy-chk.lo memset-chk.lo snprintf-chk.lo sprintf-chk.lo \
stpcpy-chk.lo strcat-chk.lo strcpy-chk.lo strncat-chk.lo \
strncpy-chk.lo vsnprintf-chk.lo vsprintf-chk.lo
@@ -291,7 +291,7 @@
libsubincludedir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/include
nobase_libsubinclude_HEADERS = ssp/ssp.h ssp/string.h ssp/stdio.h ssp/unistd.h
libssp_la_SOURCES = \
- ssp.c gets-chk.c memcpy-chk.c memmove-chk.c mempcpy-chk.c \
+ ssp.c memcpy-chk.c memmove-chk.c mempcpy-chk.c \
memset-chk.c snprintf-chk.c sprintf-chk.c stpcpy-chk.c \
strcat-chk.c strcpy-chk.c strncat-chk.c strncpy-chk.c \
vsnprintf-chk.c vsprintf-chk.c
@@ -452,7 +452,6 @@
distclean-compile:
-rm -f *.tab.c
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gets-chk.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libssp_nonshared_la-ssp-local.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memcpy-chk.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memmove-chk.Plo@am__quote@
+70
View File
@@ -0,0 +1,70 @@
GCC has two runtime libraries: The static library libgcc.a (-lgcc) and
the shared library libgcc_s.so (-lgcc_s). Both implement many of the
same functions but they also each have their unique functions. When
gcc links programs and libraries there are three possibilities:
1. gcc -static-libgcc or gcc -static: -lgcc
=> Just use libgcc.a.
2. gcc -shared-libgcc: -lgcc_s -lgcc
=> Link with libgcc_s first, so libgcc.a is only used for its unique
functions.
3. gcc: -lgcc -Wl,--as-needed -lgcc_s -Wl,--no-as-needed
=> Link with libgcc.a first so libgcc_s is only used for its unique
functions (_Unwind_* functions).
Approach 3 is the default for gcc and it's also what clang and clang++ use;
approach 2 is the default for gfortran, g++ and probably other front ends.
This patch makes 3 the default for gfortran. It significantly reduces
the use of libgcc_s. The _Unwind_* functions are also available in the
old base system libgcc_s which means this reduces the need for
-rpath /usr/local/lib/gccN in ports that depend on libraries built with
gfortran. Consider a dependency tree like this:
prog -> libA -> libgcc_s (old base system libgcc_s is fine)
-> libB -> libgcc_s (libB built with gfortran, needs new libgcc_s)
Here prog needs to be linked with -rpath /usr/local/lib/gccN even if it's
a normal C program compiled with clang. Without -rpath it will fail to
start because it loads old libgcc_s first as a dependency of libA and then
it fails to load libB. With this patch libB works with old base system
libgcc_s or may not need libgcc_s at all, so prog does not need to be
linked with -rpath.
Upstream is unlikely accept a patch like this because libgfortran calls
some _Unwind_* functions and so always needs libgcc_s. Also because
every Fortran program and library links to libgfortran it makes sense
that option 2 above is the default. On FreeBSD where clang and GCC
compiled code can be mixed and where multiple libgcc_s may be installed,
option 3 is just a lot easier to deal with.
The bug that sparked this is PR 208120 (but note there's a lot of
misleading information in that bug. CMake is not actually doing
anything wrong.)
--- UTC
--- gcc/fortran/gfortranspec.c.orig 2015-06-26 17:47:23 UTC
+++ gcc/fortran/gfortranspec.c
@@ -404,7 +404,7 @@ For more information about these matters
}
}
-#ifdef ENABLE_SHARED_LIBGCC
+#if 0
if (library)
{
unsigned int i;
--- libgfortran/Makefile.in.orig 2019-02-22 14:22:13.000000000 +0000
+++ libgfortran/Makefile.in 2019-02-27 16:27:08.856408000 +0000
@@ -625,7 +625,7 @@
$(LTLDFLAGS) $(LIBQUADLIB) ../libbacktrace/libbacktrace.la \
$(HWCAP_LDFLAGS) \
-lm $(extra_ldflags_libgfortran) \
- $(version_arg) -Wc,-shared-libgcc
+ $(version_arg)
libgfortran_la_DEPENDENCIES = $(version_dep) libgfortran.spec $(LIBQUADLIB_DEP)
cafexeclib_LTLIBRARIES = libcaf_single.la
+7
View File
@@ -0,0 +1,7 @@
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.
+7
View File
@@ -0,0 +1,7 @@
GCC, the GNU Compiler Collection, supports a number of languages.
This port installs the C, C++, and Fortran front ends as gcc9, g++9,
and gfortran9, respectively.
WWW: https://gcc.gnu.org
Gerald Pfeifer <gerald@FreeBSD.org>
+33
View File
@@ -0,0 +1,33 @@
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++%%SUFFIX%%
bin/gcc%%SUFFIX%%
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%%
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
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
@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