GCC, the GNU Compiler Collection, supports a number of languages.
This port installs the C, C++, and Fortran front ends as gcc8, g++8,
and gfortran8, respectively.
Gerald Pfeifer <gerald@FreeBSD.org>
===> The following configuration options are available for gcc8-8.5.0_2:
BOOTSTRAP=on: Build using a full bootstrap
MULTILIB=on: Build support for 32-bit and 64-bit targets
===> Use 'make config' to modify these settings
To ensure binaries built with this toolchain find appropriate versions
of the necessary run-time libraries, you may want to link using
-Wl,-rpath=/usr/local/lib/gcc8
For ports leveraging USE_GCC, USES=compiler, or USES=fortran this happens
transparently.
lang/gcc8: Update EXPIRATION_DATE
During the last commit the EXPIRATION_DATE was set to match the
EXPIRATION_DATE of the last consumer print/wkhtmltopdf however this
consumer has been updated to build with gcc10 hence reduce the
EXPIRATION_DATE to 2023-12-31.
Approved by: salvadore (private mail)
lang/gcc8 lang/gcc9: fix build with libc++ 17
When building relatively recent gcc ports (with C++ in them) against
libc++ 17, you get errors similar to:
In file included from
/wrkdirs/usr/ports/lang/gcc12/work/gcc-12.2.0/gcc/cp/module.cc:208:
In file included from
/wrkdirs/usr/ports/lang/gcc12/work/gcc-12.2.0/gcc/system.h:239:
In file included from /usr/include/c++/v1/vector:321:
In file included from /usr/include/c++/v1/__format/formatter_bool.h:20:
In file included from /usr/include/c++/v1/__format/formatter_integral.h:32:
In file included from /usr/include/c++/v1/locale:202:
/usr/include/c++/v1/__locale:546:5: error: '__abi_tag__' attribute only
applies to structs, variables, functions, and namespaces
546 | _LIBCPP_INLINE_VISIBILITY
| ^
/usr/include/c++/v1/__config:813:37: note: expanded from macro
'_LIBCPP_INLINE_VISIBILITY'
(Only the first 15 lines of the commit message are shown above )
lang/gcc8: Set EXPIRATION_DATE
Set EXPIRATION_DATE to 2 weeks after the expiration of the last dependency.
The port was already marked DEPRECATED.
PR: 269645
Move more WWW entries from pkg-descr files into Makefiles
The WWW: lines in the pkg-descr files of these ports where not at the
end of those files and have been missed in prior conversion runs.
Approved by: portmgr (implicit)
lang: remove 'Created by' lines
A big Thank You to the original contributors of these ports:
* Aaron Dalton <aaron@FreeBSD.org>
* Adam Weinberger <adamw@FreeBSD.org>
* Akinori MUSHA aka knu <knu@idaemons.org>
* Alex Dupre <ale@FreeBSD.org>
* Alexey Dokuchaev <danfe@FreeBSD.org>
* Alonso Cardenas Marquez <acm@FreeBSD.org>
* Andreas Klemm <andreas@klemm.gtn.com>
* Andrew Pantyukhin <infofarmer@FreeBSD.org>
* Andrey Zakhvatov
* Anton Berezin <tobez@FreeBSD.org>
* Anton Berezin <tobez@tobez.org>
(Only the first 15 lines of the commit message are shown above )
lang/gcc8: Relinquish maintainership
After working on (and largely maintaining) our GCC ports for more than
19 years, time has come to hand over the baton. Sadly despite multiple
requests nobody stepped up, so return this port to the pool.
That said, the GCC 8 release series is end of life for half a year now
and this port should be removed rather sooner than later in favor of
lang/gcc10 or later. We only keep it for the sake of a sole other port,
converters/wkhtmltopdf.
lang/gcc8: Deprecate due to end of life
The GCC 8 release series went end of life after the release of GCC 8.5.
Mark this port as deprecated, alas without a concrete EXPIRY_DATE for
now, to notify users to migrate.
lang/gcc8-devel: Remove
With the release of GCC 8.5 the GCC 8 release series has reached
end of life.
This also means the end of weekly snapshots. Remove lang/gcc8-devel
which has been tracking those and redirect to lang/gcc8 and that
final release instead.
lang/gcc8: Update to GCC 8.5
This is the final release from the GCC 8 release branch, fixing at least
199 bugs compared to GCC 8.4. GCC 8 is now closed.
Update to MPC version 1.2.0 with the following changes:
- New functions:
. mpc_sum
. mpc_dot
- Several functions are more robust with a reduced exponent range
(for example corresponding to IEEE 754 binary formats).
- New mpcheck tool for comparison with the native C library (which
is not installed by default).
Bump all directly dependent ports. Do not bump those indirectly
dependent via the lang/gcc* family since their run-time dependencies
and code generated should not be affected.
PR: 249950
Submitted by: wen
Backport part of r566453 | gerald | 2021-02-24 from lang/gcc8-devel:
ALso back port part of r565301 | gerald | 2021-02-15 from
lang/gcc11-devel:
Explicitly build --without-zstd such that archivers/zstd isn't pulled
in inadvertedly when present in the build system even though it is not
an explicit dependency. [1]
PR: 253286 [1]
Back port part of r554351 | gerald | 2020-11-07 from lang/gcc8-devel:
Also remove SSP_UNSAFE which was added by r327697 in 2013 to the
pre-pre-...-predecessor of this port and does not appear necessary
any longer.
r553147 | gerald | 2020-10-23 21:27:59 +0000 (Fr., 23 Okt. 2020) | 7 lines
Forward port r552389 | gerald | 2020-10-15 from lang/gcc7:
Remove the GRAPHITE options (which we never enabled by default).
GCC 8 is towards the end of its lifecycle and this is a more
experimental feature, so better left to actively developed versions.
Update to the GCC 8.4 release which fixes at least 209 bugs compared
to the previous.
Multilib support on amd64 has been merged upstream, thus obsoleting
files/patch-amd64-gcc-multilib-support .
Remove sparc64, which has not been working for far too long, from the
list of supported architectures for the GCC 8 based ports.
PR: 236839
Agreed to by: emaste
Partially forward port r517855 | gerald | 2019-11-18 from lang/gcc8-devel:
On versions of FreeBSD that that are new enough and made that switch
already, use ELFv2 ABI on powerpc64.
PR: 239813
Submitted by: pkubaj
Reported by: linimon
clang on rs6000/powerpc* unfortunately poisons user namespace by default
(without any special options or include files being required).
Until that changes (or GCC changes) we need to avoid using vec_step as a
variable name.
PR: 239266
Bump PORTREVISION for ports depending on the canonical version of GCC
as defined in Mk/bsd.default-versions.mk which has moved from GCC 8.3
to GCC 9.1 under most circumstances now after revision 507371.
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c11, c++0x, c++11-lang,
c++11-lib, c++14-lang, c++17-lang, or gcc-c++11-lib
plus, everything INDEX-11 shows with a dependency on lang/gcc9 now.
PR: 238330
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).
(Only the first 15 lines of the commit message are shown above )
Backport r496295 | andreast | 2019-03-19 22:03:17 from lang/gcc8-devel:
This commit brings multilib support for gcc on amd64. This means you can
compile and execute 32-bit binaries with gcc.
The gcc part will be upstreamed as soon as gcc trunk opens for new commits.
On the release front, gcc8, we will merge this commit after a week or so.
No longer require a not too old version of GCC to build on powerpc64, but
rely on the system compiler (even if that means we need to be explicitly
conservative when it comes to optimizations). [1]
Simplify the creation of the multilib-related sub-directory tree on
powerpc64 and avoid leaving an empty directory behind on the way. [2]
Sync pkg-descr with lang/gcc7-devel, in particular after r442530 there.
PR: 235975 [1], 235964 [2], 231804 [2]
Submitted by: Piotr Kubaj <pkubaj@anongoth.pl> [1]
Discussed with: Piotr Kubaj <pkubaj@anongoth.pl> [2]
Update to the GCC 8.3 release which fixes more than 153 bugs compared to
the previous release, with a focus on regressions.
Pet portlint as it comes to the patch format of files/patch-fuse-ld=lld .
On powerpcspe configure GCC --with-cpu=8548 instead of --with-cpu=8540,
which caused the build to fail after the update to binutils 2.31 and was
factually incorrect anyways (since the oldest we support is 8548).
PR: 235393
Reported by: jhibbits
Update files/patch-spe-config (and with that our local adjustments to
config.gcc) to the changed directory structure under gcc/config brought
by GCC 8 when powerpcspe was cloned and broken out from the regular
powerpc port.
PR: 234419
Submitted by: jhibbits
MFH: 2019Q1 (build fix on powerpcspe)
Bump PORTREVISION for ports depending on the canonical version of GCC
defined via Mk/bsd.default-versions.mk which has moved from GCC 7.4 t
GCC 8.2 under most circumstances.
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c11, c++0x, c++11-lang,
c++11-lib, c++14-lang, c++17-lang, or gcc-c++11-lib
plus, as a double check, everything INDEX-11 showed depending on lang/gcc7.
PR: 231590
Add support for -fuse-ld=lld, backported from GCC mainline which is
going to become GCC 9 (in form of files/patch-fuse-ld=lld borrowed
from devel/riscv64-gcc).
PR: 227302
Merge r479405 | mat | 2018-09-10 from lang/gcc8-devel to lang/gcc8 as well:
After an include, PLIST_SUB must be appended to, not overwritten.
If it is overwritten, many values will be clobbered, and
pain will ensue.
PR: 230864
Reviewed by: mat
Install texinfo files (GNU info) into ${PREFIX}/share/info
After a discussion on the mailing list on moving manpages to
${PREFIX}/share/man for consistency with base where it is
installed in usr/share/man, it appeared the same should happen
to GNU info files which were installed under share in base and
not in ports.
Now texinfo is not in base on any of the supported version of FreeBSD
it is possible to proceed to this move and it is easier to do than
the manpage change.
Other benefit than consistency are less patching: all build tools but
cmake are expecting info files to be under share/info and cmake (patched here)
was having an exception for BSD so the patch makes FreeBSD case less
specific for them
Bump revision of all impacted ports
PR: 232907
exp-run by: antoine
Differential Revision: https://reviews.freebsd.org/D17816
Forward port r478722 | gerald | 2018-09-01 from lang/gcc7:
Disable the build/use of libssp/gets-chk since FreeBSD 12 and later
do not feature gets() any longer.
PR: 222796, 231066
Differential Revision: https://reviews.freebsd.org/D12298
Bump PORTREVISION for ports depending on the canonical version of GCC
in the ports tree (via Mk/bsd.default-versions.mk and lang/gcc) which
has now moved from GCC 6 to GCC 7 by default.
This includes ports
- featuring USE_GCC=yes or USE_GCC=any,
- featuring USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and those
- with USES=compiler specifying one of openmp, nestedfct, c11, c++0x,
c++11-lib, c++11-lang, c++14-lang, c++17-lang, or gcc-c++11-lib.
PR: 222542
Update to the GCC 8.2 release, the second in the GCC 8 series.
This fixes more than 99 bugs, among others a performance regression
with -mtune=native on Intel Skylake chips has been fixed.
This also fixes a bug introduced in GCC 8.1 affecting passing or
returning of classes with a deleted copy constructor and defaulted
trivial move constructor (GCC bug c++/86094). GCC 8.2 introduces
-fabi-version=13 and makes it the default; ABI incompatibilities
between GCC 8.1 and 8.2 can be reported with -Wabi=12.
Forward port r469788 from lang/gcc6:
Filter the -mretpoline command-line option, which is understood by
recent versions of clang (and used in the context of the Spectre
security issues), but not GCC (which uses different options for the
same) from CFLAGS and CXXFLAGS.
This avoids the build of this port via bootstrap, which is the default
and leverages both the system compiler (clang in most cases) plus a just
built version GCC, to fail due to the latter not knowing -mretpoline.
PR: 228205
Submitted by: rozhuk.im@gmail.com
Welcome GCC 8.1, the first release of the GCC 8 series!
https://gcc.gnu.org/gcc-8/changes.html has a comprehensive overview of
many changes in this release and https://gcc.gnu.org/gcc-8/porting_to.html
addresses issues you may encounter porting to this new version.
To provide a brief overview of some of the more noticable changes:
On the optimization front inter-procedural optimizations (IPO) and profile
driven optimizations (PDO) have been further improved and some classic loop
nest optimization passes have been added: -floop-unroll-and-jam performs
outer loop unrolling and fusing of the inner loop copies, while
-floop-interchange exchanges loops in a loop nest to improve data locality.
These, as well as an improved -ftree-loop-distribution pass are enabled by
default at -O3 and above.
(Only the first 15 lines of the commit message are shown above )